File tree Expand file tree Collapse file tree 4 files changed +39
-16
lines changed
Expand file tree Collapse file tree 4 files changed +39
-16
lines changed Original file line number Diff line number Diff line change 115115### 八、:sunny ::umbrella ::zap : Redis 核心应用
116116
117117- [ Redis(第01篇)核心:Redis单线程模型为啥这么快?] ( https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/cache/SingleThreadModel.md )
118-
119- - [ Redis(第01篇)核心:主从复制] ( https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/cache/Replication.md )
120- - Redis(第01篇)核心:Sentinel 哨兵
121- - Redis(第01篇)核心:集群与分布式
122- - Redis(第01篇)核心:事务
123- - Redis(第01篇)核心:持久化--RDB与AOF
124- - Redis(第01篇)核心:缓存更新
125- - Redis(第01篇)核心:布隆过滤
126- - Redis(第01篇)核心:缓存击穿(缓存穿透)
127- - Redis(第01篇)核心:缓存雪崩
128- - Redis(第01篇)核心:缓存降级
129- - Redis(第01篇)核心:热点key
118+ - [ Redis(第02篇)核心:主从复制] ( https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/cache/Replication.md )
119+ - Redis(第03篇)核心:Sentinel 哨兵
120+ - Redis(第04篇)核心:集群与分布式
121+ - Redis(第05篇)核心:事务
122+ - [ Redis(第06篇)核心:持久化--RDB与AOF] ( https://github.com/about-cloud/JavaCore/blob/master/resource/markdown/cache/Persistence.md )
123+ - Redis(第07篇)核心:缓存更新
124+ - Redis(第08篇)核心:布隆过滤
125+ - Redis(第09篇)核心:缓存击穿(缓存穿透)
126+ - Redis(第10篇)核心:缓存雪崩
127+ - Redis(第11篇)核心:缓存降级
128+ - Redis(第12篇)核心:热点key
130129
131130### 九、:telescope ::tokyo_tower ::satellite : 分布式系统
132131
Load Diff This file was deleted.
Original file line number Diff line number Diff line change 1+ <h3 style =" padding-bottom :6px ; padding-left :20px ; color :#ffffff ; background-color :#E74C3C ;" >Redis持久化</h3 >
2+
3+ Redis 是一种基于内存的数据库,一旦断电、重启,Redis 中的数据将不复存在。Redis 提供了 RDB 和 AOF 两个持久化的方式。当 Redis 实例重启时,可以使用已持久化的数据(文件)来还原内存数据集。
4+
5+
6+
7+ ---
8+
9+ <h3 style =" padding-bottom :6px ; padding-left :20px ; color :#ffffff ; background-color :#E74C3C ;" >RDB</h3 >
10+
11+ ** RDB** 的全称是 * Redis DataBase* ,Redis 数据库。这种持久化方式是将当前Redis内存中的数据生成快照文件保存到硬盘,简单粗暴。
12+
13+
14+
15+ 在之前的、已经废弃的 ` save ` 命令来实现RDB持久化数据,因为Redis是单线程工作的,` save ` 命令持久化时会一直阻塞,直到持久化完成。数据量越大,持久化带来的阻塞时间就越长。
16+
17+ 现在可以使用 ` bgsave ` 命令来代替 ` save ` 。bg就是background,使用 ` bgsave ` 方式RDB持久化时,Redis工作进程会 fork 一个子进程,该子进程专门来负责RDB持久化,而工作进程会继续工作,阻塞时间只发生。
18+
19+
20+
21+
22+
23+ ---
24+
25+ <h3 style =" padding-bottom :6px ; padding-left :20px ; color :#ffffff ; background-color :#E74C3C ;" >AOF</h3 >
Original file line number Diff line number Diff line change 22
33** 数据复制的意义:** 1、读写分离,降低单节点的读写压力;2、容灾转移,单机出现问题,从节点接替。
44
5- Redis 数据复制是单向的,而且一个节点从属一个master节点 。
5+ Redis 数据复制是单向的,而且一个节点只能从属一个master节点 。
66
77
88
@@ -52,5 +52,6 @@ Redis 数据复制是单向的,而且一个节点从属一个master节点。
5252
5353<h3 style =" padding-bottom :6px ; padding-left :20px ; color :#ffffff ; background-color :#E74C3C ;" >复制原理</h3 >
5454
55- ![ Redis注册复制原理] ( https://i.loli.net/2019/02/11/5c6147b3de702 .png )
55+ ![ Redis注册复制原理] ( https://i.loli.net/2019/02/12/5c62226abbf3d .png )
5656
57+ 首先,通过上述配置主从复制,从节点保存主节点的信息,然后建立 socket 连接。Redis的ping命令是用于客户端检测服务端是否正常运作或消息延时的一种命令,是一种心跳机制,在这里从节点就是客户端,主节点就是服务端。从节点发送ping命令至主节点,如果主节点正常运作则返回pong,这样才能表示双方网络通达。紧接着,如果主节点开启 ` requirepass foobared ` 参数(foobared 可以认为是安全校验密码),主节点会对从节点进行权限校验。密码正确后,才进行数据同步,最后不断的、陆陆续续的、持续复制后面的数据,实现这一持续复制数据的实现方式就是复制其操作命令。
You can’t perform that action at this time.
0 commit comments