🔄Update: Redis

This commit is contained in:
2025-09-27 15:42:03 +08:00
parent 5245811164
commit 5dae89e523
3 changed files with 80 additions and 0 deletions
+26
View File
@@ -0,0 +1,26 @@
# 线程模型
**主线程**
1. 接收请求
2. 解析请求
3. 执行请求
*使用一个主线程完成,但是不可以说 `Redis` 程序单线程的*
**后台线程**
- AOF刷盘线程
- 关闭文件线程
- 释放内存线程
*这些线程执行比较耗时,因此单独创建*
---
> Q: 为什么 Redis 只有一个主线程还可以这么快?
>
> A:
> - 内存
> - 多线程竞争
> - I/O 多路复用
+25
View File
@@ -0,0 +1,25 @@
# 持久化
- AOF
- 日志
- RDB
- 快照
- 混合持久化
**AOF**
- 先执行命令 后写入日志
- 避免检查开销
- 不阻塞当前写操作的执行
- 写回硬盘
- `Always`
- `Everysec`
- `No`
- 日志过大
- `AOF` **重写**
**RDB**
- **写时复制技术**
- 主线程写时保留一份副本
- 后台线程使用副本数据
+29
View File
@@ -0,0 +1,29 @@
# 哨兵模式
**用途**
主节点故障时切换新主节点保证服务稳定性
---
**监控**
- 心跳机制
- `PING/PONG`
- 主观下线
- 目标节点未能在规定时间内响应 `PING` 命令
- 客观下线
- 仅对于主节点
- 多个哨兵报告主节点处于下线状态
**选举**
1. 判定主节点客观下线的哨兵成为Leader候选者
2. 候选者发起投票
3. 每位哨兵仅有一票,候选者可以投给自己
4. 半数以上或配置的赞成票
5. `Leader` 牵头执行主从切换
**通知**
通知其他 节点