redis集群

作者: Geroge1226 | 来源:发表于2020-09-01 15:19 被阅读0次

    1、业务背景

    在实际生产中使用redis,如果只使用单节点方式会存在以下问题。
    (1)redis所在服务宕机,或者是进程死掉,则服务继续使用过redis提供服务,而且如果redis服务硬盘坏掉及时做了持久化,也会将数据丢失掉。
    (2)单个redis服务内存大小有限,如果所有操作都让一个服务器来承担。也是有问题的。
    基于以上,我们会考虑到使用redis集群

    2、集群详解

    2.1 集群中的角色
    • 主Redis数据库
    • 从Redis数据库库
      启动多实例redis命令:--slaveof 主数据ID 端口号
      【示例】
    redis-server --port 6380 --slaveof 127.0.0.1 6379
    

    3、主从复制原理

    • 主从复制过程
      主从复制过程
      【说明】
      1、如果复制初始化完成,后续主数据库每收到一条命令都会主动发送给从数据库。
      2、如果主从数据库断开链接后,当链路回复正常时,会重新进行复制初始化(全量复制),这是2.6以前版本做法。2.8版本之后,使用主数据库推送断开这段时间内数据命令。推送到从数据库(增量复制)。

    4、redis哨兵

    介绍
    哨兵是一个独立进程,可以集群部署哨兵。

    image.png

    哨兵作用:

    (1)监控主数据库和从数据库是否正常运行
    (2)主数据库出现故障时自动动讲从数据库转换为主数据库。

    默认redis目录下有sentinel.conf文件。


    image.png
    • 使用redis-sentinel命令启动
    [longshiyang@lsyPro redis-5.0.5 ]$ redis-sentinel sentinel.conf 
    5226:X 01 Sep 2020 15:03:28.822 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
    5226:X 01 Sep 2020 15:03:28.822 # Redis version=5.0.5, bits=64, commit=00000000, modified=0, pid=5226, just started
    5226:X 01 Sep 2020 15:03:28.822 # Configuration loaded
    5226:X 01 Sep 2020 15:03:28.823 * Increased maximum number of open files to 10032 (it was originally set to 256).
                    _._                                                  
               _.-``__ ''-._                                             
          _.-``    `.  `_.  ''-._           Redis 5.0.5 (00000000/0) 64 bit
      .-`` .-```.  ```\/    _.,_ ''-._                                   
     (    '      ,       .-`  | `,    )     Running in sentinel mode
     |`-._`-...-` __...-.``-._|'` _.-'|     Port: 26379
     |    `-._   `._    /     _.-'    |     PID: 5226
      `-._    `-._  `-./  _.-'    _.-'                                   
     |`-._`-._    `-.__.-'    _.-'_.-'|                                  
     |    `-._`-._        _.-'_.-'    |           http://redis.io        
      `-._    `-._`-.__.-'_.-'    _.-'                                   
     |`-._`-._    `-.__.-'    _.-'_.-'|                                  
     |    `-._`-._        _.-'_.-'    |                                  
      `-._    `-._`-.__.-'_.-'    _.-'                                   
          `-._    `-.__.-'    _.-'                                       
              `-._        _.-'                                           
                  `-.__.-'                                               
    
    5226:X 01 Sep 2020 15:03:28.827 # Sentinel ID is d13aa7a2bd051001a1dccc5c1d7e97d31986107f
    5226:X 01 Sep 2020 15:03:28.827 # +monitor master mymaster 127.0.0.1 6379 quorum 2
    5226:X 01 Sep 2020 15:03:28.829 * +slave slave 127.0.0.1:6380 127.0.0.1 6380 @ mymaster 127.0.0.1 6379
    5226:X 01 Sep 2020 15:03:28.829 * +slave slave 127.0.0.1:6381 127.0.0.1 6381 @ mymaster 127.0.0.1 6379
    
    4.1 哨兵生命周期中

    (1)每10秒会向主数据库和从数据发送INFO命令
    (2)每2秒会向主数据库和从数据库的sentinel:hello 频道发送自己的小心
    (3)每1秒会向主数据库,从数据库和其他哨兵节点发送PING命令。

    相关文章

      网友评论

        本文标题:redis集群

        本文链接:https://www.haomeiwen.com/subject/zjjjsktx.html