标签:水平 file clust 连接数 配置文件 16px 保存 删除节点 技术
为什么要redis集群?
即使有了主从复制,每个数据库都要保存整个集群中的所有书,这样很容易造成木桶效应。使用Jedis实现了分片集群,是由客户端决定哪些key数据放到哪个数据库中,如果在水平扩容时就需要手动的进行数据的迁移,而且需要将整个redis停止服务,这样是及其不好的,所以redis3.0引入了集群。
配置集群
1.修改配置文件
(1)设置不同的端口
(2)开启集群cluster-enabled yes
(3)指定集群的配置文件,cluster-config-file "nodes-xxxx.conf"
2.创建集群环境
(1)安装ruby环境(redis5.0及以上不用安装ruby环境)
(2)创建集群
插槽的分配
通过cluster nodes命令可以查看当前集群的信息。
该信息反映了集群中的每一个节点的id、身份、连接数、插槽数。
当我们执行set命令时,redis是如何将数据保存到redis集群中的?
1.接收set命令
2.通过key计算出插槽值,根据插槽值找到相应的节点
3.重定向到该节点执行命令
整个redis提供了18364个插槽
插槽和key的关系
计算key的插槽值:key的有效部分使用CRC16算法计算出hash值,再将hash值对16384取余,得到插槽值。
新增集群节点
重新分配插槽:
删除集群节点
想要删除集群中的某个节点,必须严格的执行两步:
(1)将这个节点上的所有插槽全部移到其他节点上;
(2)使用redis-trib.rb删除节点
Redis故障转移机制
使用集群需要注意的事项
标签:水平 file clust 连接数 配置文件 16px 保存 删除节点 技术
原文地址:https://www.cnblogs.com/ericz2j/p/11110635.html