Redis高可用

高可用

常用命令

1.slaveof

SLAVEOF <ip> <port>
SLAVEOF NO ONE

2.info replication

INFO REPLICATION

主从复制

全量复制: 从节点第一次连接的时候

增量复制: ...

怎么判断某个节点是否可用

主节点每10秒向从节点发送一次ping

主从复制中, 主节点某个key过期了如何处理

向从节点模拟一条del语句

主从复制是同步还是异步

客户端发送命令 -> 主节点执行命令 -> 主节点返回给客户端 -> 异步发送给从节点

主从复制的两个buffer有什么区别

repl backlog buffer: 环形缓冲区, 只有一个, 用户数据从新回复的增量更新

replication buffer: 每个节点分配一个, 用户存储要发送给从节点的数据

哨兵

哨兵是如何工作的

1.监控:

  • 通过主观下限和客观下限判断, 每1s向所有节点发送一次ping, 当主节点被认定为客观下限后(主观下限的数量>=quorum值)

2.选主

  • 首先选出leader哨兵, 通过客观下限后的哨兵被认为是候选者, 然后获取其他哨兵的投票, 当票数超过quorum时成为leader哨兵
  • 故障转移过程
    • 根据从节点优先级、便宜量、运行id选出新主节点, 执行slave no one
    • 其他节点执行slave 指向新主节点
    • 利用发布订阅机制通知客户端更换了主节点
    • 旧主节点继续监控

3.通知

  • 利用发布订阅机制通知客户端更换了主节点

为什么需要哨兵机制

需要高可用, 自动恢复故障

哨兵集群如何组成的

哨兵之间通过 sentinel : hello 频道相互发现

通过指定的配置文件例如下, 使用 info replication 获取主节点和从节点信息

port 26379
bind 0.0.0.0
daemonize yes
logfile "/var/log/redis_sentinel.log"

# 监控名为 mymaster 的主节点, 客观下限为2
sentinel monitor mymaster <master-ip> 6379 2
# 需要配置主节点密码
sentinel auth-pass mymaster master-password

# 若秒无法连接,就会认为它已宕机(主观下线)
sentinel down-after-milliseconds mymaster 5000
# 故障转移超时时间
sentinel failover-timeout mymaster 10000
# 一次只能有 1 个从节点 与新的主节点同步 避免压力过大
sentinel parallel-syncs mymaster 1
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇