1.在服务器上安装redis
https://www.cnblogs.com/9080dlb/p/15712625.html
准备6台服务器
2.配置文件修改
cluster-enabled yes #在1386行 开启集群模式
#每个集群节点都有一个集群配置文件。此文件不打算手工编辑。
#每个Redis集群节点都需要一个不同的集群配置文件。确保在同一系统中运行的实例没有重叠的集群配置文件名 cluster-config-file nodes-6379.conf
#集群节点超时是节点必须不可达的毫秒数,节点才会被认为处于故障状态。
#大多数其他内部时间限制都是节点超时的倍数 cluster-node-timeout 15000
修改完成后启动
3.节点文件
还可以登录客户端查看
127.0.0.1:6379> cluster nodes 94c619b0e6ad58ea9579d61eb21eadee57e6b162 :6379@16379 myself,master - 0 0 0 connected 1075 5474 12473
redis从5开始就可以直接用redis-cli命令创建集群了!不用安装ruby(我都不知道这是啥,百度全是这玩意)
4.创建集群
注意:需要先开启集群端口16379 ,不然执行下面的操作会出现Waiting for the cluster to join....一直等待
6个服务器的redis启动完毕后在任意一台服务器上执行
[root@dlb bin]# redis-cli --cluster create x.xx.xx.x:6379 ...(共6个) --cluster-replicas 1
踩坑点:
刚执行完,可能报错点1:
[ERR] Node x.xx.xx.xx:6379 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.
解决:删除dump.rdb文件和nodes.conf这个两个文件!重启redis就OK了
可能报错2:
Could not connect to Redis at xx.xx.xx.xx:6379: No route to host
解决:可能是防火墙,服务器端口没开,再或者装了宝塔等服务器软件给关闭着
所有槽都已经分配到了节点中
在此时发现可以正常的存取值了
查询集群节点状态
47.101.147.243:6379> cluster nodes