码迷,mamicode.com
首页 > 其他好文 > 详细

Redis集群

时间:2019-06-30 19:08:16      阅读:127      评论:0      收藏:0      [点我收藏+]

标签:水平   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故障转移机制

技术图片

使用集群需要注意的事项

技术图片

 

Redis集群

标签:水平   file   clust   连接数   配置文件   16px   保存   删除节点   技术   

原文地址:https://www.cnblogs.com/ericz2j/p/11110635.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!