环境
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
复制配置文件:
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
或者写一个脚本
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
查看进程
创建集群:将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,即一个主节点对应一个从节点
连接到集群的某个节点:
./redis-cli -a test123 -c -h 172.16.45.250 -p 7001
-c,1、连接集群结点时使用,此选项可防止moved和ask异常;2、加上-c,节点之间可以自动跳转
如果不加-c
加-c,set键值对后,直接跳转到7003了
集群节点信息
集群信息