数据库
首页 > 数据库> > redis 三主三从集群构建与踩坑(3个服务器)

redis 三主三从集群构建与踩坑(3个服务器)

作者:互联网

前提

        CentOS 7

        默认已经完成redis单机安装

安装ruby2.3.0

        wget https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.1.tar.gz

        进入目录执行 

                命令一:./configure --prefix=

                命令二:make && make install

        使用ruby -v 查看版本,如图则安装成功

        

 安装redis

        gem install redis

修改配置文件redis.conf

        在redis安装目录创建文件cluster-conf/6379,cluster-conf/6380.

        拷贝redis.conf  至cluster-conf/6379,cluster-conf/6380里面并修改配置

        以6379端口为例(集群配置不分主从,其他端口/节点配置是一样的) 

                port 6379

                bind 0.0.0.0(不限制IP,也可以直接注释这行配置)

                protected-mode yes(保护模式 外网访问需配置bind ip或者设置访问密码)

                daemonize yes(允许后台)

                pidfile /var/run/redis_6379.pid

                logfile "/usr/local/redis/redis-4.0.8/log/redis-6379.log"

                dbfilename dump_6379.rdb

                requirepass jt123(密码)

                appendfilename "appendonly_6379.aof"

                (以独立日志的方式记录每次写命令,重启时再重新执行AOF文件中的命令达到恢复数据的目的。AOF的主要作用是解决了数据持久化的实时性,目前已经是Redis持久化的主流方式。)

                cluster-enabled yes(开启集群模式)

                cluster-config-file nodes-6379.conf(确保在系统中实例没有重复集群配置文件名称)

                 cluster-node-timeout 15000(超时时间)

启动redis

        3个服务器都要执行下面命令

                redis-server ./cluster-conf/6379/redis.conf 

                redis-server ./cluster-conf/6380/redis.conf      

        确认效果,如下图则启动成功

                

 构建集群

        任何服务器节点执行下面命令(服务器ip)

                redis-trib.rb create --replicas 1 1.14.69.85:6379 1.14.61.12:6380 139.155.1.12:6379 139.165.1.63:6380 139.155.39.298:6379 139.135.39.212:6380

        确认效果,如下图则集群构建成功

        

连接测试

        连接命令:redis-cli -c -h 139.135.1.23 -p 6379 -a jt123

 坑点

        1.创建redis集群报错:ERR Slot 0 is already busy (Redis::CommandError)

                错误提示是说:slot插槽被占用了、这是因为 搭建集群前时,以前redis的旧数据和配置信息没有清理干净。

                解决方案:用redis-cli 登录到每个节点执行  flushall  和 cluster reset  就可以了。

        2.创建redis集群,Sorry, can't connect to node

                原因:因为redis设置了密码

                解决方案:

                        需要修改

                                /usr/local/rvm/gems/ruby-2.4.1/gems/redis-4.0.1/lib/redis/client.rb

                                可能大家路径不一样,find / -name client.rb找一下,修改password

                                

         3.搭建Redis集群遇到的问题:Waiting for the cluster to join...

                原因:集群端口没有开放,redis端口+10000

                解决方案:如redis端口6379,集群时服务器必须开放16379端口

总结

        redis5.0以下搭建集群需要安装ruby环境,这个有点麻烦。其他的有问题百度都能找到解决方案。

标签:6379,三主三,redis,cluster,集群,6380,conf,服务器
来源: https://blog.csdn.net/jt18626154357/article/details/120121404