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