您的位置:首页 > 数据库 > Redis

redis-cluster集群搭建

2020-07-09 20:56 274 查看

安装redis参考:https://blog.csdn.net/Alinlx/article/details/107066395
1、配置每台redis服务器:
daemonize yes #后台启动
port 8000
cluster-enabled yes #配置yes开启redis-cluster
#下面这个配置很重要,cluster开启必须重命名指定cluster-config-file,不能与别的节点相同,否则会启动失败,最好按主机+端口命名
cluster-config-file nodes-8000.conf
cluster-node-timeout 15000 #配置节点之间超时时间
appendonly yes
如下图修改成对应值:



这样redis-cluster集群就配置完成。
2、启动所有服务器
./redis6/bin/redis-server ./redis6/bin/redis.conf
3、创建集群
使用dis-cli --cluster create IP:port IP:port IP:port IP:port IP:port IP:port --cluster-replicas 1

正确创建的话会打印如下信息:
4、测试
4.1、1.测试存取值,客户端连接集群redis-cli需要带上 -c ,redis-cli -c -h ip -p port -a pwd
根据redis-cluster的key值分配,name应该分配到节点192.168.158.131:8000[5461-10922]上,上面显示redis cluster自动从192.168.158.130:8000跳转到了192.168.158.131:8000节点。
4.2、测试一下192.168.158.132:8000从节点获取name值
注意:(error) MOVED错误,一般情况是启动redis-cli时没有启动集群所致:-c
5、问题
5.1、原来的主从配置问题,主从模式的slaveof host port配置会与cluster配置冲突

将原来主从配置注释起来。
5.2、登录进去测试./redis6/bin/redis-cli -c -h “xxx.xxx.xxx.xxx” -p 8001
报错(error) CLUSTERDOWN Hash slot not served
没有分配槽,因为redis集群要分配16384个槽来储存数据,那么没有分配槽则报如上错误
执行dis-cli --cluster create IP:port IP:port IP:port IP:port IP:port IP:port --cluster-replicas 1
上面执行完时会出现提示
Can I set the above configuration? (type ‘yes’ to accept):

你需要输入yes,而并非缩写 y,因为玩linux的都习惯的会输入 y,但是这里不行,要全拼yes才可以。就是这个错误引起的分配槽失败。
5.3、Waiting for the cluster to join…
如果出现了,Waiting for the cluster to join… 这句话,并一直卡在这里,需要考虑以下原因:
配置文件redis.conf 中的bind 设置,IP要是本机地址
删除以下文件:
rm -rf nodes.conf // cluster-config-file
rm -rf dump.rdb // dbfilename
rm -rf appendonly.aof // appendfilename

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: