【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>
环境版本
-
redis 5.0
-
vmware 上安装的centos 7
Cluster介绍
- Redis Cluster是Redis的分布式解决方案
- Redis Cluster采用虚拟槽分区,所有的键根据哈希函数映射到0~16383整数槽内,计算公式:slot = CRC16(key) & 16383。 每一个节点负责维护一部分槽以及槽所映射的键值数据。
搭建集群
- Redis集群一般由多个节点组成,节点数量至少为6个才能保证组成完整高可用的集群。每个节点都要开启配置cluster-enabled yes,让redis运行在集群的模式下。建议为集群被所有节点统一目录,一般划为为:conf、data、logs,分别存放配置文件,数据和日志。
- 如下图:(端口6379-6384,是开始的集群配置,6385,6386是用来后期测试集群的扩容和伸缩)
- 在data目录中创建对应的文件夹存放数据,结果如下图
- 配置文件的内容如下,每个端口做对应的修改
- 启动所有的redis服务,为了方便写了一个 start-all.sh
- 查看redis启动的进程,ps -ef | grep redis
- redis服务启动完成之后,启动cluster,本文采用的redis 5.0 命令如下,其中--replicas参数指定集群中每个主机点配备几个从节点。
- 启动,需要输入yes对slot分配方案肯定
- 至此cluster算是已经启动成功了
- 新开一个终端连接上 redis-cli -c -h 192.168.32.88(写自己的ip) -p 6379 ,然后cluster nodes
新增主节点
- 新增redis-6385配置文件等,然后启动6385的服务
- 连接到6379,进行如下操作 cluster meet 192.168.32.88 6385
- reids-cli --cluster reshard 192.168.32.88 6385
- 等待remove完全结束,去6379查看cluster nodes
新增从节点
- 新增6386,启动服务
- 连接6386,cluster replicate 主节点的nodeId
删除从节点
- redis-cli --cluster del-node 192.168.32.88:6386 85d3a1cb013a291390099dbc3157a5817b59a14d
删除主节点
- 前提:先确认其没有从节点的存在
- 将slot分三次归还给对应的节点
- 三个全都还原完后,再去cluster nodes查看
- 此时再进行主节点的删除
end
来源:oschina
链接:https://my.oschina.net/u/4055223/blog/3144545