本篇文章给大家带来的内容是关于redis集群配置与管理的详细介绍(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
Redis在3.0版本以后开始支持集群,经过中间几个版本的不断更新优化,最新的版本集群功能已经非常完善。本文简单介绍一下Redis集群搭建的过程和配置方法,redis版本是5.0.4,操作系统是中标麒麟(和Centos内核基本一致)。
1、Redis集群原理
Redis 集群是一个提供在多个Redis间节点间共享数据的程序集,集群节点共同构建了一个去中心化的网络,集群中的每个节点拥有平等的身份,节点各自保存各自的数据和集群状态。节点之间采用Gossip协议进行通信,保证了节点状态的信息同步。
Redis 集群数据通过分区来进行管理,每个节点保存集群数据的一个子集。数据的分配采用一种叫做哈希槽(hash slot)
的方式来分配,和传统的一致性哈希不太相同。Redis 集群有16384个哈希槽,每个key通过CRC16校验后对16384取模来决定放置哪个槽。
为了使在部分节点失败或者大部分节点无法通信的情况下集群仍然可用,集群使用了主从复制模型。读取数据时,根据一致性哈希算法到对应的 master 节点获取数据,如果master 挂掉之后,会启动一个对应的 salve 节点来充当 master 。
2、环境准备
这里准备在一台PC上搭建一个3主3从的redis集群。
在/opt/目录下新建一个文件夹rediscluster,用来存放集群节点目录。
然后分别新建server10、server11、server20、server21、server30、server31 6个文件夹准备6个redis节点,这些节点分别使用6379、6380、6381、6382、6383、6384端口,以server10为例配置如下:
1 2 3 4 5 6 |
|
其他节点只需修改端口和文件名,依次按此进行配置即可,配置完成后启动这些节点。
1 2 3 4 5 6 |
|
查看启动状态:
1 2 3 4 5 6 7 |
|
3、集群配置
非常简单:redis-cli --cluster create 127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384 --cluster -replicas 1
其中-replicas 1表示每个主节点1个从节点
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
|
创建完成,主从节点分配如下:
1 2 3 |
|
4、集群测试
通过6379客户端连接后进行测试,发现转向了6381:
1 2 3 4 5 6 |
|
在6381上连接测试:
1 2 3 |
|
结果相同,说明集群配置正常。
5、集群节点扩容
在rediscluster目录下在新增两个目录server40和server41,新增2个redis节点配置6385和6386两个端口。将6385作为新增的master节点,6386作为从节点,然后启动节点:
1 2 3 4 5 6 7 8 9 |
|
添加主节点:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
|
查看节点列表:
1 2 3 4 5 6 7 8 9 |
|
添加从节点:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
|
添加成功后,为新节点分配数据:
1 2 3 4 5 6 7 8 |
|
这样就新增完毕了,可以通过cluster nodes命令查看一下新增后的slot分布
1 2 3 4 5 6 7 8 9 |
|
6、集群节点缩减
缩减节点时先缩减从节点:
1 2 3 4 |
|
然后进行主节点slot转移:
1 2 3 4 |
|
最后在缩减主节点
1 2 3 4 5 6 7 8 9 |
|
缩减完成!【相关推荐:Redis教程】
以上是redis集群配置与管理的详细介绍(附代码)的详细内容。更多信息请关注PHP中文网其他相关文章!