Redis集群(五):集群搭建
一、本文目的
演示在一台机器上搭建3主3从的redis集群,通过演示了解redis集群的搭建,使用和注意事项
二、搭建说明
1、同一台机器搭建3主3从的伪集群
2、使用端口7111~7116,集群端口为端口前+1,如果使用端口7111,则其集群通信端口为17111,
redis.config的配置如下:
daemonize | port | pidfile | logfile | cluster-enabled | cluster-config-file | cluster-node-timeout | |
7111 | yes | 7111 | /var/run/redis7111.pid | "redis7111.log" | yes | nodes-7111.conf | 5000 |
7112 | yes | 7112 | /var/run/redis7112.pid | "redis7112.log" | yes | nodes-7112.conf | 5000 |
7113 | yes | 7113 | /var/run/redis7113.pid | "redis7113.log" | yes | nodes-7113.conf | 5000 |
7114 | yes | 7114 | /var/run/redis7114.pid | "redis7114.log" | yes | nodes-7114.conf | 5000 |
7115 | yes | 7115 | /var/run/redis7115.pid | "redis7115.log" | yes | nodes-7115.conf | 5000 |
7115 | yes | 7116 | /var/run/redis7116.pid | "redis7116.log" | yes | nodes-7116.conf | 5000 |
三、搭建过程
1、安装搭建说明修改配置文件及打开所有端口,并启动6个redis ![](https://images2015.cnblogs.com/blog/35158/201610/35158-20161024160843046-1322615024.png)
![](https://images2015.cnblogs.com/blog/35158/201610/35158-20161024160843046-1322615024.png)
2、创建redis集群是使用ruby命令,故需要安装以下软件
123456789安装 ruby 和 rubygems(注意: 需要 ruby 的版本在 1.8.7 以上)
# yum install ruby rubygems
检查 ruby 版本:
# ruby -v
ruby 1.8.7 (2013-06-27 patchlevel 374) [x86_64-linux]
gem 安装 redis ruby 接口:
# gem install redis
3、执行创建集群的命令(可在任何一个redis的src目录下执行)
a) redis-trib.rb 创建集群的rube命令
b) create 创建集群
c) replicas 每个master包含一个slaver
d) 192.168.146.131:7111 每个redis实例的ip+端口,每个实例根据空格分开
1 2 3 | cd /usr/local/redis7111/src ./redis-trib.rb create replicas 1 192.168 . 146.131 : 7111 192.168 . 146.131 : 7112 192.168 . 146.131 : 7113 192.168 . 146.131 : 7114 192.168 . 146.131 : 7115 192.168 . 146.131 : 7116 |
4、系统分配Master、Slaver集群关系
5、Slot插槽分配结果
四、集群的测试
1、设置key
![](https://images2015.cnblogs.com/blog/35158/201610/35158-20161024160853734-1562180606.png)
2、 在另外一个集群机器上读取刚设置的key
3、查看集群间的关系、Master/Slaver之间的关系
五、总结
- 集群中各台机器的配置信息一致,Master/Slaver关系是在创建集群时由系统分配
- redis集群公用16384个slot,分配给不同的Master
- 每个key最终都会位于某一个slot,读取key时会先转向到某一个slot,然后读取其中的值
- 新增集群或减少集群(如新增或减少Master)会重新分配slot
- 集群的Master/Slaver不知道怎么做容灾,自动切换等,等待进一步研究
六、参考资料