redis 集群搭建及相关命令

来源:互联网 发布:西方现代哲学史知乎 编辑:程序博客网 时间:2024/05/18 12:33
redis 集群安装


1、下载redis 安装包redis-3.0.7.tar.gz
2、tar -zxvf redis-3.0.7.tar.gz 解压安装包
3、进入根目录,make 编译
4、进入src,make install 安装
5、新建目录/usr/local/redis/bin   /usr/local/redis/etc
6、拷贝redis-server redis-cli 到bin下,拷贝redis.conf到etc下
7、修改redis.conf 包括端口号、后台启动等
8、启动 /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
9、客户端连接 /usr/local/redis/bin/redis-cli -p 8080      8080为定义的端口号
以上操作分别在10.202.15.193、10.202.15.195、10.202.15.198操作一遍

集群部署

10、新建文件夹

在机器10.202.15.193、10.202.15.195、10.202.15.198 分别建立以下文件夹

/usr/local/redis-cluster/7001
/usr/local/redis-cluster/7002

11、把/usr/local/redis/etc/redis.conf分别拷贝到 7001、7002下
12、分别修改配置文件
port 7001  
pidfile /var/run/redis-7001.pid  
dbfilename dump-7001.rdb  
appendfilename "appendonly-7001.aof"  
cluster-config-file nodes-7001.conf  
cluster-enabled yes  
cluster-node-timeout 5000  
appendonly yes 


13、启动

在10.202.15.193、10.202.15.195、10.202.15.198分别操作

/usr/local/redis/bin/redis-server /usr/local/redis-cluster/7001/redis.conf
/usr/local/redis/bin/redis-server /usr/local/redis-cluster/7002/redis.conf



14、安装ruby,rubygems
yum  install ruby
yum  install rubygems
换源
gem source --remove http://rubygems.org/
gem sources -a http://ruby.taobao.org/
gem install redis --version 3.0.0  //安装gem_redis 
如果因为网络的原因无法直接下载安装,则可以先找到下载到gem,然后安装。
gem install redis -a 地址
https://rubygems.org/downloads/redis-3.0.7.gem

15、src 下执行 
redis-trib.rb create --replicas 1 10.202.15.193:7001 
10.202.15.193:7002 
10.202.15.195:7001

10.202.15.195:7002

10.202.15.198:7001

10.202.15.198:7002


16、客户端连接

redis-cli  -h   10.202.15.193 -c -p 7001 其中一定不能少了-c,否则会报(error) moved 错误

17、查看节点信息
redis-cli -c -h 10.202.15.193 -p 7001 cluster nodes

18、新增节点
创建文件夹7003,cp redis.conf ,更改配置文件中的端口,同以上操作

先启动节点

redis-server /usr/local/redis/redis-cluster/7003/redis.conf

然后加入集群

./redis-trib.rb add-node 10.202.15.193:7003 10.202.15.193:7001

出现以下信息

>>> Adding node 10.202.15.193:7003 to cluster 10.202.15.193:7001
>>> Performing Cluster Check (using node 10.202.15.193:7001)
M: 150ddf914c03f4e64fb3b9b95b2dc6ca4a6fc1ee 10.202.15.193:7001
   slots:10923-16383 (5461 slots) master
   1 additional replica(s)
S: 276546e824881f9aea3a50d85eb4cf36164a8a41 10.202.15.193:7002
   slots: (0 slots) slave
   replicates 150ddf914c03f4e64fb3b9b95b2dc6ca4a6fc1ee
S: e6c5e58e39d3dd6fd8a71aa1d40ba5c69750e747 10.202.15.198:7002
   slots: (0 slots) slave
   replicates bbb013a6286c2c678d0fd9e51d1bc205d6cc4799
S: 2048ac316f682f7c6d2ab115e63bc1809cdca269 10.202.15.195:7002
   slots: (0 slots) slave
   replicates a8da385c311fe7b12073ae87858c8c70ff261077
M: bbb013a6286c2c678d0fd9e51d1bc205d6cc4799 10.202.15.195:7001
   slots:5461-10922 (5462 slots) master
   1 additional replica(s)
M: a8da385c311fe7b12073ae87858c8c70ff261077 10.202.15.198:7001
   slots:0-5460 (5461 slots) master
   1 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
>>> Send CLUSTER MEET to node 10.202.15.193:7003 to make it join the cluster.
[OK] New node added correctly.


加入后有可能是master节点,也有可能是slave节点。

19、移动槽

执行一下命令移动槽

./redis-trib.rb reshard 10.202.15.193:7001

提示移动多少个槽,输入1000,即移动1000个

然后指定移到哪个节点上,输入刚创建的节点ID ,查看节点ID可以用redis-cli -c -h 10.202.15.193 -p 7001 cluster nodes

95df1ee020021a5ca6fe6961431ded660b304229

然后提示需要移动哪几个节点的槽到新的节点上,可以输入all,表示从主节点中随机取一些槽到新的节点,也可以输入节点ID,指定从哪几个节点移,最后输入done结束

输入all后,会显示执行计划,输入yes,执行计划,移动槽

20、把这个节点变成从节点

把新的节点变成slave,新的节点中必须没有槽,并且对于的master也没有槽,有的话需要移动到其他的master,否则会报

ERR To set a master the node must be empty and without assigned slots 错误,移动槽参照上面步骤

新节点和对应的master上没有槽后,执行一下命令

./redis-cli -c -h 10.202.15.193 -p 7003 cluster replicate 150ddf914c03f4e64fb3b9b95b2dc6ca4a6fc1ee

150ddf914c03f4e64fb3b9b95b2dc6ca4a6fc1ee是对应的master节点ID


redis-cli -h 10.202.15.193 -p 7001 cluster nodes | grep slave | grep 150ddf914c03f4e64fb3b9b95b2dc6ca4a6fc1ee 查看master下对应的slave


276546e824881f9aea3a50d85eb4cf36164a8a41 10.202.15.193:7002 slave 150ddf914c03f4e64fb3b9b95b2dc6ca4a6fc1ee 0 1503403543612 9 connected
95df1ee020021a5ca6fe6961431ded660b304229 10.202.15.193:7003 slave 150ddf914c03f4e64fb3b9b95b2dc6ca4a6fc1ee 0 1503403540607 7 connected

21、查看节点信息

进入客户端

./redis-cli -c -h 10.202.15.198 -p 7001

输入 info replication 输出当前节点的信息,包括节点是master还是slave



Replication
role:master
connected_slaves:3
slave0:ip=10.202.15.198,port=7002,state=online,offset=1710,lag=1
slave1:ip=10.202.15.198,port=7003,state=online,offset=1724,lag=1
slave2:ip=10.202.15.195,port=7003,state=online,offset=1710,lag=1
master_repl_offset:1724
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:2
repl_backlog_histlen:1723




0 0