Redis-Cluster入门

知识准备

1、官方推荐至少3个master,3个slave,这样可以让数据冗余1份。
2、每个Node(节点)需要两个TCP的端口,一个用作服务(the client port),一个用作节点间的bus(the cluster bus port),默认情况下bus port = client + 10000。
3、Redis采用master-slave模式,如果集群只有master,A,B,C的话,如果B挂了,系统就不可用了,如果集群有6个Node,A,B,C,A1,B1,C1,其中B1复制B,这样如果B挂了,集群会自动把B1升级为master,所以系统仍可以正常工作。

优势

1、自动把数据分割到各个节点
2、数据冗余,一定数量的加点宕机不影响整体

步骤

配置文件修改

redis.conf,这里给出最简配置:

port 7000
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes

注意:nodes.conf不允许人为修改,是redis在运行过程中自动创建的。

创建6个实例

mkdir cluster-test
cd cluster-test
mkdir 7000 7001 7002 7003 7004 7005

然后把redis所需的执行脚本和redis.conf复制到700*的文件夹下。
分别启动

 ./redis-server redis.conf

结果:

8371:M 13 Jul 14:51:06.610 * No cluster configuration found, I'm 933456b38570767f5e1dc1099832511686c42cc6

创建集群

首先安装gem

gem install redis

在src目录下,找到redis-trib.rb:

./redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005

结果:

Waiting for the cluster to join...
>>> Performing Cluster Check (using node 127.0.0.1:7000)
M: 8ff4aac1039ba8473bb14343db1c4d4d3b7f58ee 127.0.0.1:7000
   slots:0-5460 (5461 slots) master
M: 1967f958e39187d85d9e09e2a737935bcb5a97c1 127.0.0.1:7001
   slots:5461-10922 (5462 slots) master
M: 933456b38570767f5e1dc1099832511686c42cc6 127.0.0.1:7002
   slots:10923-16383 (5461 slots) master
M: 483c957ec7c4b7fa06e04d99bc0bde3a03251e07 127.0.0.1:7003
   slots: (0 slots) master
   replicates 8ff4aac1039ba8473bb14343db1c4d4d3b7f58ee
M: 25a40c73463925045c550569ced8c3539ac1f53d 127.0.0.1:7004
   slots: (0 slots) master
   replicates 1967f958e39187d85d9e09e2a737935bcb5a97c1
M: 94286b1d18fcca27b6e2521dd25c273739c77a21 127.0.0.1:7005
   slots: (0 slots) master
   replicates 933456b38570767f5e1dc1099832511686c42cc6
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

成功。

测试

src redis-cli -c -p 7000
127.0.0.1:7000> set k2 v2
OK
127.0.0.1:7000> set k3 v3
OK
127.0.0.1:7000> set k4 v4
-> Redirected to slot [8455] located at 127.0.0.1:7001
OK
127.0.0.1:7001> get k1
-> Redirected to slot [12706] located at 127.0.0.1:7002
"v1"
127.0.0.1:7002> 
➜  src ./redis-cli -c -p 7001
127.0.0.1:7001> set k1 v1
-> Redirected to slot [12706] located at 127.0.0.1:7002
OK
127.0.0.1:7002> 
➜  src ./redis-cli -c -p 7005
127.0.0.1:7005> set k9 v9
-> Redirected to slot [12458] located at 127.0.0.1:7002
OK
127.0.0.1:7002> 

后续

查看加点

127.0.0.1:7002> CLUSTER NODES
8ff4aac1039ba8473bb14343db1c4d4d3b7f58ee 127.0.0.1:7000 master - 0 1468402146388 1 connected 0-5460
94286b1d18fcca27b6e2521dd25c273739c77a21 127.0.0.1:7005 slave 933456b38570767f5e1dc1099832511686c42cc6 0 1468402146907 3 connected
1967f958e39187d85d9e09e2a737935bcb5a97c1 127.0.0.1:7001 master - 0 1468402145355 2 connected 5461-10922
483c957ec7c4b7fa06e04d99bc0bde3a03251e07 127.0.0.1:7003 slave 8ff4aac1039ba8473bb14343db1c4d4d3b7f58ee 0 1468402147419 4 connected
933456b38570767f5e1dc1099832511686c42cc6 127.0.0.1:7002 myself,master - 0 0 3 connected 10923-16383
25a40c73463925045c550569ced8c3539ac1f53d 127.0.0.1:7004 slave 1967f958e39187d85d9e09e2a737935bcb5a97c1 0 1468402145869 5 connected
ef667a00cc70974642f3fda563eb5c77cd200f60 127.0.0.1:7006 slave 933456b38570767f5e1dc1099832511686c42cc6 0 1468402146907 3 connected
127.0.0.1:7002> 

添加实例

./redis-trib.rb add-node 127.0.0.1:7006 127.0.0.1:7000

添加实例作为复制

./redis-trib.rb add-node --slave 127.0.0.1:7006 127.0.0.1:7000

删除节点

./redis-trib del-node 127.0.0.1:7000 `<node-id>`
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值