Redis集群(Redis Cluster)安装部署—下篇(创建集群)
本系列文章目录:
Redis集群(Redis Cluster)安装部署—上篇(使用RVM安装Ruby)
Redis集群(Redis Cluster)安装部署—中篇(阿里云内网安装Ruby)
Redis集群(Redis Cluster)安装部署—下篇(创建集群)
redis cluster管理工具redis-trib.rb详解
上面两篇介绍了Redis集群环境安装,本篇介绍集群的创建
机器不够用,先找了3台测试机,每台启动4个Redis 服务 6主6从 正式环境如果允许的话最好每台机器上部署一个Redis服务
结构如下:
M ==>master (端口号 5001-5006)
S ==> slave (端口号 5101-5106)
1.准备内容
机器1:
在redis目录下创建目录:redis_cluster/conf
并在下面分别创建 5001,5004,5103,5106 四个目录
然后复制一份 redis.conf
进入编辑模式:
需要修改的配置:
NETWORK下:
bind 192.168.1.116 (本机IP,不要写 127.0.0.1或localhost)
port 5001
GENERAL下:
daemonize yes (后台运行)
pidfile /var/run/redis_5001.pid
SNAPSHOTTING下:
dbfilename dump5001.rdb
如果需要密码 可以到 SECURITY 下设置 此版本为无密码版本
LAZY FREEING下是4.0新增功能可以都放开
slave-lazy-flush:slave接收完RDB文件后清空数据选项
lazyfree-lazy-eviction:内存满逐出选项
lazyfree-lazy-expire:过期key删除选项
lazyfree-lazy-server-del:内部删除选项,比如rename oldkey newkey时,如果newkey存在需要删除newkey
APPEND ONLY MODE下:
appendonly no (关闭aof 如果数据不是重要数据建议关闭)
REDIS CLUSTER 下:
cluster-enabled yes
cluster-config-file nodes-5001.conf
cluster-node-timeout 15000
cluster-slave-validity-factor 10
cluster-require-full-coverage no
SLOW LOG下 这个看情况吧 可以使用默认配置
总结:
1 2 3 4 5 6 7 8 9 10 11 |
bind 192.168.1.116 port 5001 daemonize yes pidfile /var/run/redis_5001.pid dbfilename dump5001.rdb appendonly no cluster-enabled yes cluster-config-file nodes-5001.conf cluster-node-timeout 15000 cluster-slave-validity-factor 10 cluster-require-full-coverage no |
修改之后保存,然后依次修改 5004,5102,5105下的配置 另外两台修改方式同上
最终结构:
配置完成之后需要把防火墙端口打开
5001,5002,5003,5004,5005,5006
5101,5102,5103,5104,5105,5106
Redis集群通信端口为Redis端口+10000
所以下列端口也得打开:
15001,15002,15003,15004,15005,15006
15101,15102,15103,15104,15105,15106
2.启动Redis
1 2 3 4 5 6 7 8 9 10 11 |
#!/bin/bash echo redis starting...... cd /usr/local/redis redis-server redis_cluster/conf/5001/redis.conf redis-server redis_cluster/conf/5004/redis.conf redis-server redis_cluster/conf/5102/redis.conf redis-server redis_cluster/conf/5105/redis.conf echo ok ps -ef|grep redis netstat -tnlp | grep redis |
把上面命令保存到redis-cluster.sh 放到 /home/soft 下并执行
可以看到都占用了哪些端口
启动另外两台机器上的Redis
Redis启动完毕
3.创建集群
使用redis-trib.rb 脚本命令创建集群
最好先创建master 再添加slave 这样创建失败后比较好处理
1 2 |
cd /usr/local/redis/src ./redis-trib.rb create 192.168.1.116:5001 192.168.1.101:5002 192.168.1.110:5003 192.168.1.116:5004 192.168.1.101:5005 192.168.1.110:5006 |
列出了集群信息,询问是否创建
输入 yes
集群创建完成,slot 平均分配到6个master节点上
然后添加slave
1 2 3 4 5 6 |
./redis-trib.rb add-node --slave --master-id e1c274512089c87b6c83b2369bf9f2aa3687187a 192.168.1.110:5101 192.168.1.116:5001 ./redis-trib.rb add-node --slave --master-id 40a81a4cb3b8d3472ce41a10394d6c0a8f2826ec 192.168.1.116:5102 192.168.1.116:5001 ./redis-trib.rb add-node --slave --master-id ccf219d38601125dd1f51bb6f7b35d3bfab584b2 192.168.1.101:5103 192.168.1.116:5001 ./redis-trib.rb add-node --slave --master-id 74dc3091ac2e7c7877baeb0aa2d1b3f4d116aa23 192.168.1.110:5104 192.168.1.116:5001 ./redis-trib.rb add-node --slave --master-id f270f21ac1f7d899d9da8cb28c3ee7731ba4f1c0 192.168.1.116:5105 192.168.1.116:5001 ./redis-trib.rb add-node --slave --master-id ac542957a51c3acda4522cce17fb900bb0912358 192.168.1.101:5106 192.168.1.116:5001 |
节点添加完毕 执行check 查看集群信息
1 |
./redis-trib.rb check 192.168.1.116:5001 |
可以看到 6个master 节点 6个slave 节点,至此集群创建完毕
这里有一个改好的配置文件 下载后只需 把 IP改了 然后把 端口号字符串统一替换即可
附件:
config.rar
本文链接:Redis集群(Redis Cluster)安装部署—下篇(创建集群)
转载声明:本站文章若无特别说明,皆为原创,转载请注明来源:破晓(http://www.code2048.net),谢谢!^^