Skip to content
本文总阅读量

Redis集群模式

安装redis

https://redis.io/download redis-server 在官网下载包中的src文件中获取

7000中的 redis.conf 配置文件

port 7000
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
  • 同理复制 port 7000~7005 一一对应

运行redis

  • cd 7000
  • ../redis-server ./redis.conf

创建集群命令

Redis Cluster 在5.0之后取消了ruby脚本 redis-trib.rb的支持(手动命令行添加集群的方式不变),集合到redis-cli里,避免了再安装ruby的相关环境。直接使用redis-clit的参数--cluster 来取代

redis-cli --cluster create 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 --cluster-replicas 1
  • 显示集群状态

7000 7001 7002 是主节点,7003 7004 7005是从节点

测试集群,set/get key

工具尝试连接一个端口7000查看key、检查下redis运行端口状态

kill 81530 #kill 掉7000 节点

再查看状态

redis-cli --cluster check 127.0.0.1:7001
7005替代了7000成为主接口 重启7000端口会成为从节点

添加新节点 7006

  redis-cli --cluster add-node 127.0.0.1:7006 127.0.0.1:7000

分配槽点

  redis-cli --cluster reshard 127.0.0.1:7000

四个主节点,槽点16384 / 4 = 4096

如果我们不打算从特定的节点上取出指定数量的哈希槽, 那么可以向 redis-trib 输入 all , 这样的话, 集群中的所有主节点都会成为源节点, redis-trib 将从各个源节点中各取出一部分哈希槽, 凑够 4096 个, 然后移动到7006节点上; 输入all,将会开始迁移 重新分配槽点后