Redis-Cluster实战--5.使用redis-cli安装
Redis-Cluster实战--.使用redis-cli安装 博客分类: redis
缓存
redis-cluster
redisCluster指派槽cluster-infomeetslots
转载请注明出处哈:http://carlosfu.iteye.com/blog/2240426 安装视频: 8.2. redis-cluster安装1 8.2. redis-cluster安装2 8.2. redis-cluster安装纠正 一、目的
为什么官方提供了ruby构建集群工具,还要实现一个redis-cli版的集群构建?
答案很简单:
. 熟悉redis-cluster的集群命令和协议(作者给的ruby工具都是在这些命令组合起来)
. 更好的理解redis-cluster
注意:
本文档只为了演示redis-cli搭建Redis-Cluster,实际大集群还是以工具(例如ruby, 其他语言封装的自动化安装工具为第一选择)。 二、准备redis(下载、编译、安装、配置目录、数据目录) . 下载、编译、安装 Java代码
cd /opt/soft
wget http://download.redis.io/releases/redis-3.0.3.tar.gz
tar xzf redis-3.0..tar.gz
cd redis-3.0.
make
make install . 配置目录、数据目录 Java代码
cd /opt/soft/redis-3.0.
mkdir -p data
mkdir -p conf .建立软链接: Java代码
ln -s /opt/soft/redis-3.0. /opt/soft/redis 二、配置、启动Redis节点(本例子以3主、3从组成Redis-Cluster) 实际中应该在多台机器进行安装,这里为了方便演示只用了一台机器,ip=10.10.53.159。 . 配置redis节点,在conf目录下添加6个(-)redis-${port}.conf作为6个节点的配置文件 其中8000-8005是六个端口号 Java代码
port
cluster-enabled yes
cluster-config-file nodes-.conf
cluster-node-timeout
dir "/opt/soft/redis/data/"
appendonly yes
appendfilename "appendonly-8000.aof"
logfile "8000.log"
daemonize yes
pidfile /var/run/redis-.pid
dbfilename "dump-8000.rdb" 生成另外5个文件 Java代码
sed 's/8000/8001/g' redis-.conf > redis-.conf
sed 's/8000/8002/g' redis-.conf > redis-.conf
sed 's/8000/8003/g' redis-.conf > redis-.conf
sed 's/8000/8004/g' redis-.conf > redis-.conf
sed 's/8000/8005/g' redis-.conf > redis-.conf . 启动6个节点。 Java代码
redis-server /opt/soft/redis/conf/redis-.conf
redis-server /opt/soft/redis/conf/redis-.conf
redis-server /opt/soft/redis/conf/redis-.conf
redis-server /opt/soft/redis/conf/redis-.conf
redis-server /opt/soft/redis/conf/redis-.conf
redis-server /opt/soft/redis/conf/redis-.conf . 查看节点是否都已经启动: Java代码
[@zw_53_162 conf]# ps -ef | grep redis
root : ? :: redis-server *: [cluster]
root : ? :: redis-server *: [cluster]
root : ? :: redis-server *: [cluster]
root : ? :: redis-server *: [cluster]
root : ? :: redis-server *: [cluster]
root : ? :: redis-server *: [cluster] . 查看单个节点:(此时六个节点是分散的,没有形成集群,所有cluster_state=fail) Java代码
[@zw_53_162 conf]# redis-cli -c -p
127.0.0.1:> cluster info
cluster_state:fail
cluster_slots_assigned:
cluster_slots_ok:
cluster_slots_pfail:
cluster_slots_fail:
cluster_known_nodes:
cluster_size:
cluster_current_epoch:
cluster_my_epoch:
cluster_stats_messages_sent:
cluster_stats_messages_received: 四、利用redis-cluster meet命令,实现节点握手,组成集群: cluster meet <ip> <port> 将 ip 和 port 所指定的节点添加到集群当中,让它成为集群的一份子。 . 利用redis-cli连接到8000,然后meet - Java代码
redis-cli -c -p cluster meet 10.10.53.159
redis-cli -c -p cluster meet 10.10.53.159
redis-cli -c -p cluster meet 10.10.53.159
redis-cli -c -p cluster meet 10.10.53.159
redis-cli -c -p cluster meet 10.10.53.159 五、分配槽(slots)给节点: . 分派slots cluster addslots <slot> [slot ...] 将一个或多个槽(slot)指派(assign)给当前节点。 redis-cli -c -p cluster addslots ... (redis-cli 未实现0-5462这样的参数,必须一个个输入。) 所以利用shell生成最终的命令addslots.sh: Java代码
start=$
end=$
port=$
for slot in `seq ${start} ${end}`
do
echo "slot:${slot}"
redis-cli -c -p ${port} cluster addslots ${slot}
done 执行: sh addslots.sh
sh addslots.sh
sh addslots.sh . 确认cluster当前状态 . Java代码
127.0.0.1:> cluster info
cluster_state:ok
cluster_slots_assigned:
cluster_slots_ok:
cluster_slots_pfail:
cluster_slots_fail:
cluster_known_nodes:
cluster_size:
cluster_current_epoch:
cluster_my_epoch:
cluster_stats_messages_sent:
cluster_stats_messages_received: . 确认分配槽状态: Java代码
127.0.0.1:> cluster nodes
6690722c4536210a231af4bdceb604e83d53403e 10.10.53.159: master - connected -
4d2842d9f846481783eafbd9135df372e2153307 10.10.53.159: myself,master - connected -
caefaab1e5d01d76a728c84cb1dc285a6aab15a6 10.10.53.159: master - connected
ec403c50e59460bcb0b47906e567423b7d9aed50 10.10.53.159: master - connected
a52b9d211ec06190bcc4ab36eecf643fa13aa215 10.10.53.159: master - connected
c05ebacbeeb6cbcf52a6ac60384891586226f131 10.10.53.159: master - connected - 127.0.0.1:> cluster slots
) ) (integer)
) (integer)
) ) "10.10.53.159"
) (integer)
) ) (integer)
) (integer)
) ) "10.10.53.159"
) (integer)
) ) (integer)
) (integer)
) ) "10.10.53.159"
) (integer) 六、配置主从关系(保证高可用): cluster replicate <node_id> 将当前节点设置为 node_id 指定的节点的从节点。 8003设置成8000的从 8004设置成8001的从 8005设置成8002的从 注意这里的命令不是slaveof
<node_id>不是ip:port的形式,需要查询cluster nodes查找自己的node_id(myself) Java代码
redis-cli -c -p cluster replicate `redis-cli -c -p cluster nodes | grep | awk '{print $1}'`
redis-cli -c -p cluster replicate `redis-cli -c -p cluster nodes | grep | awk '{print $1}'`
redis-cli -c -p cluster replicate `redis-cli -c -p cluster nodes | grep | awk '{print $1}'` 七、最终确认集群状态、节点状态、分配槽状态: Java代码
集群状态:
127.0.0.1:> cluster info
cluster_state:ok
cluster_slots_assigned:
cluster_slots_ok:
cluster_slots_pfail:
cluster_slots_fail:
cluster_known_nodes:
cluster_size:
cluster_current_epoch:
cluster_my_epoch:
cluster_stats_messages_sent:
cluster_stats_messages_received: 三主三从
127.0.0.1:> cluster nodes
6690722c4536210a231af4bdceb604e83d53403e 10.10.53.159: master - connected -
4d2842d9f846481783eafbd9135df372e2153307 10.10.53.159: myself,master - connected -
caefaab1e5d01d76a728c84cb1dc285a6aab15a6 10.10.53.159: slave c05ebacbeeb6cbcf52a6ac60384891586226f131 connected
ec403c50e59460bcb0b47906e567423b7d9aed50 10.10.53.159: slave 4d2842d9f846481783eafbd9135df372e2153307 connected
a52b9d211ec06190bcc4ab36eecf643fa13aa215 10.10.53.159: slave 6690722c4536210a231af4bdceb604e83d53403e connected
c05ebacbeeb6cbcf52a6ac60384891586226f131 10.10.53.159: master - connected - 分配槽状态:
127.0.0.1:> cluster slots
) ) (integer)
) (integer)
) ) "10.10.53.159"
) (integer)
) ) "10.10.53.159"
) (integer)
) ) (integer)
) (integer)
) ) "10.10.53.159"
) (integer)
) ) "10.10.53.159"
) (integer)
) ) (integer)
) (integer)
) ) "10.10.53.159"
) (integer)
) ) "10.10.53.159"
) (integer)
Redis-Cluster实战--5.使用redis-cli安装的更多相关文章
- Redis Cluster搭建高可用Redis服务器集群
一.Redis Cluster集群简介 Redis Cluster是Redis官方提供的分布式解决方案,在3.0版本后推出的,有效地解决了Redis分布式的需求,当一个节点挂了可以快速的切换到另一个节 ...
- 搭建分布式 Redis Cluster 集群与 Redis 入门
目录 Redis 集群搭建 Redis 是啥 集群(Cluster) Redis Cluster 说明 Redis Cluster 节点 Redis Cluster 集群模式 不能保证一致性 创建和使 ...
- Redis Cluster 4.0.9 集群安装搭建
Redis Cluster 4.0.9集群搭建步骤:yum install -y gcc g++ gcc-c++ make openssl cd redis-4.0.9 make mkdir -p / ...
- Spring Boot Redis Cluster 实战干货
添加配置信息 spring.redis: database: 0 # Redis数据库索引(默认为0) #host: 192.168.1.8 #port: 6379 password: 123456 ...
- Spring Boot Redis Cluster实战
添加配置信息 spring.redis: database: 0 # Redis数据库索引(默认为0) #host: 192.168.1.8 #port: 6379 password: 123456 ...
- Redis项目实战 .net StackExchange.Redis
StackExchange.Redis 免费.支持异步.用的最多 常用对象 源码地址:https://github.com/StackExchange/StackExchange.Redis 用 ...
- 近千节点的Redis Cluster高可用集群案例:优酷蓝鲸优化实战(摘自高可用架构)
(原创)2016-07-26 吴建超 高可用架构导读:Redis Cluster 作者建议的最大集群规模 1,000 节点,目前优酷在蓝鲸项目中管理了超过 700 台节点,积累了 Redis Clus ...
- Redis Cluster搭建方法简介22211111
Redis Cluster搭建方法简介 (2013-05-29 17:08:57) 转载▼ Redis Cluster即Redis的分布式版本,将是Redis继支持Lua脚本之后的又一重磅 ...
- Redis Cluster集群搭建与配置
Redis Cluster是一种服务器sharding分片技术,关于Redis的集群方案应该怎么做,请参考我的另一篇博客http://www.cnblogs.com/xckk/p/6134655.ht ...
- Redis Cluster部署、管理和测试
背景: Redis 3.0之后支持了Cluster,大大增强了Redis水平扩展的能力.Redis Cluster是Redis官方的集群实现方案,在此之前已经有第三方Redis集群解决方案,如Twen ...
随机推荐
- 基于modelsim-SE的简单仿真流程—下
基于modelsim-SE的简单仿真流程—下 编译 在 WorkSpace 窗口的 counter_tst.v上点击右键,如果选择Compile selected 则编译选中的文件,Compile A ...
- javascript正则表达式(RegExp)简述
首先我们来思考以下两个个场景 我们使用window操作系统,有时候需要找一个文件,刚刚好这个文件我不知道放哪里去了,这个时候我们该怎么办呢? 我们使用word写论文的时候,不小心将"订价&q ...
- oracle db link的查看创建与删除
1.查看dblink select owner,object_name from dba_objects where object_type='DATABASE LINK'; 或者 select * ...
- 使用bat(批处理文件类型)两步更改笔记本IP
一.背景 在南农工的第三年里,学校终于给教学区覆盖了无线网NJAUPK,这解决了我在汇贤楼教室上自习没网写web的尴尬处境!经常在9栋和汇贤楼教学区之间来回,遇见了一个大问题:宿舍里无线需要更改IPV ...
- Android Studio导入项目慢的问题
在Github下载的项目,导入studio时非常慢,原因是下载的项目中的gradle与当前gradle不匹配,需要更新包. 解决办法:修改下载包中的文件 1. xxx-project/.idea/gr ...
- 获取iis网站信息
1.获取网站的url地址 var ht = GetWebPathAndWebName(""); var rootUrl = ht["webaddr"].ToSt ...
- 精通Web Analytics 2.0 (9) 第七章:失败更快:爆发测试与实验的能量
精通Web Analytics 2.0 : 用户中心科学与在线统计艺术 第七章:失败更快:爆发测试与实验的能量 欢迎来到实验和测试这个棒极了的世界! 如果Web拥有一个超越所有其他渠道的巨大优势,它就 ...
- UVA445
测试了很多数据都没问题,但是就是一直WA... #include<stdio.h> #include<string.h> int main(){ ]; int n; while ...
- Docker命令详解
Docker命令详解 最近学习Docker,将docker所有命令实验了一番,特整理如下: # docker --help Usage: docker [OPTIONS] COMMAND [arg ...
- 详解SQL盲注测试高级技巧
原文地址: http://www.freebuf.com/articles/web/30841.html