1、在/user/local/创建redis-cluster目录
mkdir redis-cluster
2、在redis-cluster目录下创建节点目录
mkdir 7001 7002 7003 7004 7005 7006
3、复制一份redis.conf文件到 7001节点目录
cp redis.conf ../redis-cluster/7001/
4.修改 redis-cluster/7001/redis.conf
bind 0.0.0.0 (0.0.0.0表示所有节点都可以访问该redis)
protected-mode no
daemonize yes (设置后台运行redis)
cluster-enabled yes(开启集群,把#去掉)
cluster-node-timeout 15000 (设置请求超时时间,默认为15秒,可以自行修改)
appendonly yes (aop日志开启,会每次进行写操作都记录一条日志)
--根据不同的端口需要设置的地方
port 7001
pidfile /var/run/redis_7001.pid
dbfilename dump_7001.rdb
appendfilename "appendonly_7001.aof"
cluster-config-file nodes_7001.conf
5、修改完成后,把redis.conf 文件复制到其他节点中,并修改不同端口部分:
# 当前目录:redis-cluster/7001/
cp redis.conf ../7002/
cp redis.conf ../7003/
cp redis.conf ../7004/
cp redis.conf ../7005/
cp redis.conf ../7006/
6、创建startall.sh文件,统一启动所有节点Redis服务
vi startall.sh
内容:
redis-server 7001/redis.conf
redis-server 7002/redis.conf
redis-server 7003/redis.conf
redis-server 7004/redis.conf
redis-server 7005/redis.conf
redis-server 7006/redis.conf
赋执行权限:
chmod +x startall.sh
执行:
./startall.sh
执行结果:
查看进程是否启动,并确认端口:
ps -ef | grep redis | grep cluster
结果:
7、Redis 5.0 不使用Ruby,直接创建集群:
redis-cli --cluster create 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006 --cluster-replicas 1
--cluster-replicas 1 :表示一个master挂载几个slave,至少需要3个master,此处设置为1 至少需要 6节点,如果设置为2 至少需要9个节点。
结果:
8、测试集群:
-h:目标Redis地址
-p:目标Redis端口
-c:连入集群,如果没有此参数,当操作的key的hash slot不在当前节点时,不会自动转发到正确hash slot上。
[root@VM_0_14_centos local]# redis-cli -h 127.0.0.1 -c -p 7001
127.0.0.1:7001> set 1 2
-> Redirected to slot [9842] located at 127.0.0.1:7002
OK
127.0.0.1:7002>