您的位置:首页 > 数据库 > Redis

Redis之Cluster究极菜鸟的自我记录

2019-12-19 07:10 926 查看

【推荐】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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息