rediscluster集群搭建

Posted 小小灬星愿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了rediscluster集群搭建相关的知识,希望对你有一定的参考价值。

redis cluster可以自动的实现master+slave复制和读写分离,可以自动的实现master+slave高可用和主备切换,可以自动的实现支持多个master的hash slot支持数据分布式存储。

redis cluster重要配置

cluster-enabled <yes/no>cluster-config-file <filename>:这是指定一个文件,供cluster模式下的redis实例将集群状态保存在那里,包括集群中其他机器的信息,比如节点的上线和下限,故障转移,不是我们去维护的,给它指定一个文件,让redis自己去维护的cluster-node-timeout <millisecond>:节点存活超时时长,超过一定时长,认为节点宕机,master宕机的话就会触发主备切换,slave宕机就不会提供服务
  • 停止所有需要使用的机器上所有的redis有关的进程服务,如redis、sentinel。

  • 参照,如果是重新安装,请忽略配置文件设置的部分,请按以下进行配置(配置文件、启动脚本),如果是已经配置完成的老机器,请按以下进行重新配置(配置文件、启动脚本)。

安装完成,开始准备配置文件mkdir -p /etc/redis 存放redis的配置文件mkdir -p /etc/redis-cluster 存放redis cluster自己维护的配置文件mkdir -p /var/redis/7001 存放redis的持久化文件mkdir -p /var/log/redis 存放redis日志文件拷贝配置文件cp /usr/local/redis-5.0.5/redis.conf /etc/redis/7001.conf修改配置文件vi /etc/redis/7001.confport 7001cluster-enabled yescluster-config-file /etc/redis-cluster/node-7001.confcluster-node-timeout 15000daemonize yespidfile /var/run/redis_7001.piddir /var/redis/7001logfile /var/log/redis/7001.logbind 192.168.56.101appendonly yes
准备启动脚本文件cp /usr/local/redis-5.0.5/utils/redis_init_script /etc/init.d/redis_7001修改脚本配置信息vi /etc/init.d/redis_7001REDISPORT=7001EXEC=/usr/local/redis/bin/redis-serverCLIEXEC=/usr/local/redis/bin/redis-cl
开放防火墙端口firewall-cmd --zone=public --add-port=7001/tcp --permanentfirewall-cmd --zone=public --add-port=17001/tcp --permanentfirewall-cmd --reloadfirewall-cmd --list-port
将所有机器上的redis实例都进行启动······
  • 创建集群

redis5.0.5创建集群方式redis-cli --cluster create 192.168.56.101:7001 192.168.56.101:7002 192.168.56.102:7003 192.168.56.102:7004 192.168.56.103:7005 192.168.56.103:7006 --cluster-replicas 1--cluster-replicas 1:每个master有几个slave参考:https://blog.csdn.net/hp_1234/article/details/87124355如果在安装集群时报错。或者安装集群中途取消,然后再次安装报错:[ERR] Node 192.168.56.101:7001 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.解决方法:1)、删除每个redis节点的备份文件,数据库文件和集群配置文件。比如说我有7001-70066个节点,那么每个节点中的appendonly.aof、dump.rdb、node_xxx.conf文件都要被删除;2)、使用redis-cli -c -h -p登录每个redis节点,使用以下命令;172.168.63.201:7001> flushdb #清空当前数据库172.168.63.201:7001> cluster reset #清空当前数据库参考文件:https://blog.csdn.net/XIANZHIXIANZHIXIAN/article/details/82777767?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.add_param_isCf&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.add_param_isCf如果是给现有集群增加节点报错:[ERR] Node 192.168.56.101:7001 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.1)、将需要新增的节点下aof、rdb等本地备份文件删除;2)、同时将新Node的集群配置文件删除,即:删除你redis.conf里面cluster-config-file所在的文件;3)、再次添加新节点如果还是报错,则登录新Node,./redis-cli–h x –p对数据库进行清除:172.168.63.201:7001> flushdb #清空当前数据库参考文件:https://blog.csdn.net/weixin_44018338/article/details/93098571最后再执行集群创建redis-cli --cluster create 192.168.56.101:7001 192.168.56.101:7002 192.168.56.102:7003 192.168.56.102:7004 192.168.56.103:7005 192.168.56.103:7006 --cluster-replicas 1集群健康检查:redis-cli --cluster check 192.168.56.101:7001
以下是redis低版本创建集群方式(至少redis3.2.8版本)在其中一台机器上执行安装命令即可yum install -y rubyyum install -y rubygemsgem install redis 报错:因为redis版本过高ruby版本低Fetching: redis-4.2.2.gem (100%) ERROR: Error installing redis: redis requires Ruby version >= 2.3解决方案:gem sources -a http://mirrors.aliyun.com/rubygems/使用rvm安装发现下载缓慢,可以考虑删除原来的仓库地址,只保留阿里云镜像gem sources --remove https://rubygems.org/gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDBcurl -sSL https://get.rvm.io | bash -s stablesource /etc/profile.d/rvm.shrvm -v 查看RVM版本信息,如果可以代表安装成功rvm install 2.5 安装Rubyruby –v 验证版本然后再:gem install redis 参考文档:https://www.jianshu.com/p/7a625eb8cde0或者:https://blog.whsir.com/post-2659.html
cp /usr/local/redis-5.0.5/src/redis-trib.rb /usr/local/bin/集群健康检查:redis-trib.rb check 192.168.31.187:7000


以上是关于rediscluster集群搭建的主要内容,如果未能解决你的问题,请参考以下文章

Redis Cluster集群搭建测试

redis cluster 集群搭建

Redis的集群(搭建)

Redis集群搭建

三分钟快速搭建分布式高可用的Redis集群

三分钟快速搭建分布式高可用的Redis集群