redis集群部署文档

1.部署的服务器ip地址
   172.16.0.151
   172.16.0.173
   172.16.0.220
2.redis版本
    wget  https://download.redis.io/releases/redis-6.2.5.tar.gz
    
3.部署架构
    注意:Redis集群至少需要3个master节点,所以现在总共有6个节点,就只能是1master对应1slave这种方式
    Redis集群为什么至少需要三个master节点?
    因为新master的选举需要大于半数的集群master节点同意才能选举成功,如果只有两个master节点,当其中一个挂了,是达不到选举新master的条件的

    Redis集群为什么推荐master节点数为奇数?
    master节点数为奇数不是必须的,但是奇数个master节点可以在满足选举该条件的基础上节省一个节点。

    因为master的选举机制,例如:

    在9个master的架构中,如果4台master故障,通过过半机制,redis可以选举新的master。如果5台master故障无法选举新的master(9-5<9/2,不满足过半机制)

    在10个master的架构中,如果4台master故障,通过过半机制,redis可以选举新的master。如果5台master故障无法选举新的master(10-5=10/2,不满足过半机制)
    
    主端口7000     从端口7001
     
3.三台服务器安装目录 /data/ 
4.修改配置文件
    cd /data/redis7000/conf
    vim redis.conf
    1.bind  172.16.0.151                     //将bind 127.0.0.1修改为自己本机的IP地址
    2.daemonize yes                            //redis放置后台启动
    3.port 7000                                //设置端口
    4.pidfile /data/redis7000/redis_7000.pid
    5.logfile /data/redis7000/redis_7000.log
    6.dir /data/redis7000/redis_7000_dir
    7.masterauth 1234444                           //配置密码,所有节点统一
    8.requirepass 1234444                          //配置密码,所有节点统一
    9.cluster-enabled yes                      //开启集群
    10.cluster-config-file redis.conf          //指定配置文件名称
    11.cluster-node-timeout 15000
    12.appendonly yes                          //开启aof持久化,要想了解redis持久化,可以看我之前写的redis持久化说明,如果对于redis上的数据不是那么重要的话,也可以不进行redis持久化配置
    13.no-appendfsync-on-rewrite yes           //aof重写期间是否同步
    14.protected-mode yes                       //关闭保护模式
    15.maxmemory 20GB                           //设置 Redis 最大使用内存大小,当 Redis 使用的内存超过设置大小时就开始对数据进行淘汰
    16.maxmemory-policy volatile-ttl           //设置 Redis 的内存淘汰算法为:在设置了过期时间的Keys中,通过LRU算法来进行淘汰
    17.若Redis里存放的是一些无关紧要的数据,可以将Redis配置成无持久化,有助于性能提升,将下列项注释即可
       #save 900 1
       #save 300 10
       #save 60 10000
    
5.编辑配置文件
    6个节点都需要修改
6.新增myid文件
随便登录一台服务器上的一个节点,在此,我以192.168.36.137为例
第一种:不指定从机
    cd /data/redis7000/bin

    #cluster-replicas 1代表1个master后有几个slave节点,1代表1个,所以6个节点将会产生3个master和3个slave,-a 指定redis的密码     
   ./redis-cli --cluster create 172.16.0.151:7000 172.16.0.151:7001 192.168.36.138:7002 192.168.36.138:7003 192.168.36.139:7004 192.168.36.139:7005 --cluster-replicas 1 -a 123
   
第二种:指定从机

    选项–replicas 0 表示先为集群创建不含slaver 的集群。
       
    ./redis-cli --cluster create 172.16.0.151:7000 172.16.0.173:7000 172.16.0.220:7000 --cluster-replicas 0  -a 123
       

    启动redis-server
    ./redis-server ../conf/redis.conf
     
     
    ./redis-cli -h 172.16.0.151 -p 7000 -c -a 123 --raw
     
    手动添加slaver(从机)

    使用创建时的cluster-master-id 或执行 ./src/redis-cli --cluster check 192.168.90.17:6380 查看运行状态
    挂载slaver
 
    ./redis-cli --cluster add-node 172.16.0.173:7001 172.16.0.151:7000 --cluster-slave --cluster-master-id 8a9b6cba4d0a79bdd4cfba9207e462ef470b31f8
     
    ./redis-cli --cluster add-node 172.16.0.220:7001 172.16.0.173:7000 --cluster-slave --cluster-master-id ab0087529f911253985cd220f39a34a87dad03cb
      
    ./redis-cli --cluster add-node 172.16.0.151:7001 172.16.0.220:7000 --cluster-slave --cluster-master-id c32650a2023750ac6c4c0fe024503c88a62dfac9
  
 
    Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
    >>> Performing hash slots allocation on 3 nodes...
    Master[0] -> Slots 0 - 5460
    Master[1] -> Slots 5461 - 10922
    Master[2] -> Slots 10923 - 16383
    M: 8a9b6cba4d0a79bdd4cfba9207e462ef470b31f8 172.16.0.151:7000
       slots:[0-5460] (5461 slots) master
    M: ab0087529f911253985cd220f39a34a87dad03cb 172.16.0.173:7000
       slots:[5461-10922] (5462 slots) master
    M: c32650a2023750ac6c4c0fe024503c88a62dfac9 172.16.0.220:7000
       slots:[10923-16383] (5461 slots) master
    Can I set the above configuration? (type 'yes' to accept): yes
    >>> Nodes configuration updated
    >>> Assign a different config epoch to each node
    >>> Sending CLUSTER MEET messages to join the cluster
    Waiting for the cluster to join
    ...
    >>> Performing Cluster Check (using node 172.16.0.151:7000)
    M: 8a9b6cba4d0a79bdd4cfba9207e462ef470b31f8 172.16.0.151:7000
       slots:[0-5460] (5461 slots) master
    M: ab0087529f911253985cd220f39a34a87dad03cb 172.16.0.173:7000
       slots:[5461-10922] (5462 slots) master
    M: c32650a2023750ac6c4c0fe024503c88a62dfac9 172.16.0.220:7000
       slots:[10923-16383] (5461 slots) master
    [OK] All nodes agree about slots configuration.
    /redis-cli -h 172.16.0.151 -p 7000 -c -a 123 --raw
    
7.参考文档    

    https://blog.csdn.net/xiefazhi123/article/details/119147657

        

 

posted on 2022-09-07 14:34  running-fly  阅读(116)  评论(0编辑  收藏  举报

导航