博主的redis集群的搭建是将redis4.0.11在Ubuntu18.0.4实现的,已经成功搭建完成。
在这之前需要明确注意以下两点:
① 多键的命令操作(如MGET、MSET),如果每个键都位于同一个节点,则可以正常支持,否则会提示错误
② 集群中的节点只能使用0号数据库,如果执行SELECT切换数据库会提示错误
对redis集群的搭建及节点的增加和删除
1)博主对redis的搭建是基于此博客来实现的
https://www.cnblogs.com/mafly/p/redis_cluster.html
2)对redis集群节点的增加和删除基于此博客来实现的
https://blog.youkuaiyun.com/a67474506/article/details/50435845 见该博客中间部位节点的新增和删除
在这期间出现了部分问题及解决办法已经给出,并且博主已经成功实现了redis集群的搭建及节点的增加和删除
对于节点的增加和删除所出现的问题及解决办法:
①关于启动redis集群或者集群(主、从)节点添加时:[ERR] Node 192.168.1.115:7007 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0 ,解决办法:
情况一、启动redis集群时报改错误的解决办法
1)将每个节点下aof、rdb、nodes.conf本地备份文件删除;
[root@localhost 7001]# rm -rf appendonly.aof dump.rdb
……
2)192.168.1.115:7001> flushdb 清空当前数据库
3)重新连接redis集群,成功
情况二、redis集群新增节点时报该错误的解决办法:
错误原因:如果原来该结点在集群中的配置信息已经生成到cluster-config-file指定的配置文件中(如果cluster-config-file没有指定则默认为nodes.conf),这时可能会报错:
[ERR] Node XXXXXX is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0
解决方法:删除生成的配置文件nodes.conf,删除后再执行./redis-trib.rb add-node指令
redis集群搭建时所出现的问题及解决办法
问题一,对于redis.conf文件的修改中dir的配置,可能不好找,在第265行附近,其指数据的的存放位置
问题二,在redis的make编译安装时出现问题,详情见https://blog.youkuaiyun.com/qq_16069927/article/details/82899025
问题三,在做redis集群搭建的时候,ubuntu对于ruby的安装可以执行下面的命令
[root@localhost tank]# yum install ruby rubygems ruby-devel //安装rubygems 以及相关包
# ubuntu中可以使用 sudo apt install ruby rubygems ruby-dev
问题四,对于redis-4.0.0.gem的安装,可以先通过以下命令下载,其他版本可通过更改之后的版本号来实现
wget https://rubygems.org/gems/redis/versions/4.0.0
之后执行以下命令去实现安装
gem install redis-4.0.0.gem
问题五,对于redis.conf文件的修改严格按照博客所讲。否则,在安装期间可能会出现各种问题。
问题六,在最终测试时如果没有出现重定向,而是出现了[Erro] MOVED ip port 时,需要在客户端连接redis服务的时候加上-c
redis-cli -c -h 192.168.3.3 -p 6379