环境
redis版本:redis-5.0.4.tar.gz
操作系统(cat /etc/redhat-release):centos7.4
一台云服务器(https://www.cnblogs.com/uncleyong/p/12694334.html)模拟6个redis节点,3个master,3个slave
步骤
redis安装:https://www.cnblogs.com/uncleyong/p/9882843.html
mkdir /usr/local/redis_cluster
cd /usr/local/redis_cluster/
mkdir -p 7001/data 7002/data 7003/data 7004/data 7005/data 7006/data
cd 7001
cp ~/myfile/redis-5.0.4/redis.conf ./
vim redis.conf
port 7001 # 节点端口号
daemonize yes # 以后台进程的方式启动redis实例
bind 172.16.45.250 # 实例绑定当前机器IP地址,ip addr:172.16.45.250
dir /usr/local/redis_cluster/7001/data/(redis实例数据文件存放位置)
pidfile /var/run/redis_7001.pid # 指定该进程pidfile,和port对应
cluster-enabled yes # 启动集群模式
cluster-config-file nodes7001.conf # 和port要对应,集群中该实例的配置文件,该文件会在data目录下生成
cluster-node-timeout 5000 # 超时时间5s
appendonly yes # 开启aop日志
requirepass test123 # master开启密码保护
masterauth test123 # replica同master交互密码
redis中文官方:http://www.redis.cn/topics/cluster-tutorial.html
![](https://i-blog.csdnimg.cn/blog_migrate/94651c0bba33062ca95e2f9ef126d46c.png)
复制配置文件:
cp redis.conf ../7002/
cp redis.conf ../7003/
cp redis.conf ../7004/
cp redis.conf ../7005/
cp redis.conf ../7006/
批量替换,比如修改7002的配置文件
:%s/7001/7002/g
依次启动redis实例
~/myfile/redis-5.0.4/src/目录包含了redis-server和redis-cli的相关命令脚本,可以将该路径加入到PATH环境变量当中,方便使用;或者用/usr/local/redis/bin/下的命令
./redis-server /usr/local/redis_cluster/7001/redis.conf
![](https://i-blog.csdnimg.cn/blog_migrate/4307eb23d0d41e015ba16f3da5691d7c.png)
或者写一个脚本
vim start-all-redis.sh
cd /usr/local/redis/bin/
./redis-server /usr/local/redis_cluster/7001/redis.conf
./redis-server /usr/local/redis_cluster/7002/redis.conf
./redis-server /usr/local/redis_cluster/7003/redis.conf
./redis-server /usr/local/redis_cluster/7004/redis.conf
./redis-server /usr/local/redis_cluster/7005/redis.conf
./redis-server /usr/local/redis_cluster/7006/redis.conf
添加执行权限:chmod +x start-all-redis.sh
查看进程
![](https://i-blog.csdnimg.cn/blog_migrate/3e7b42502d88f13b08ae6df02b86fbbb.png)
创建集群:将redis实例联系起来
./redis-cli -a test123 --cluster create --cluster-replicas 1 172.16.45.250:7001 172.16.45.250:7002 172.16.45.250:7003 172.16.45.250:7004 172.16.45.250:7005 172.16.45.250:7006
--cluster-replicas 1,表示主从复制比例为 1:1,即一个主节点对应一个从节点
![](https://i-blog.csdnimg.cn/blog_migrate/f84c2b1f6f7487eb5768d0626525e9d0.png)
![](https://i-blog.csdnimg.cn/blog_migrate/e1e43dd52f9c5cae1182bacefb9af4af.png)
连接到集群的某个节点:
./redis-cli -a test123 -c -h 172.16.45.250 -p 7001
![](https://i-blog.csdnimg.cn/blog_migrate/6da35d0d393ca2f519987c855f330b43.png)
-c,1、连接集群结点时使用,此选项可防止moved和ask异常;2、加上-c,节点之间可以自动跳转
如果不加-c
![](https://i-blog.csdnimg.cn/blog_migrate/437b200b0afa75378b18b1724ef11741.png)
加-c,set键值对后,直接跳转到7003了
![](https://i-blog.csdnimg.cn/blog_migrate/0d98cb7239f86e295cd87a58eda1f434.png)
集群节点信息
![](https://i-blog.csdnimg.cn/blog_migrate/180e001520c59774f4336f45d9d27c4e.png)
集群信息
![](https://i-blog.csdnimg.cn/blog_migrate/f12a0936c08e15936e290d9401213b88.png)
![](https://i-blog.csdnimg.cn/blog_migrate/21565e6b92b4b37a83f8671b810484d4.png)
![](https://i-blog.csdnimg.cn/blog_migrate/cd621d087364f47d991030adcf2246f1.png)