推荐 原创 视频 Java开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发
Lambda在线 > 小小灬星愿 > redis(七)cluster集群搭建

redis(七)cluster集群搭建

小小灬星愿 2021-01-06

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


版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《redis(七)cluster集群搭建》的版权归原作者「小小灬星愿」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注小小灬星愿微信公众号

小小灬星愿微信公众号:gh_fe1d16924300

小小灬星愿

手机扫描上方二维码即可关注小小灬星愿微信公众号

小小灬星愿最新文章

精品公众号随机推荐