Skip to content

Commit 6cbf37e

Browse files
author
代码风水师
committed
添加了持久化的描述
1 parent 7fbbfe5 commit 6cbf37e

File tree

4 files changed

+39
-16
lines changed

4 files changed

+39
-16
lines changed

README.md

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -115,18 +115,17 @@
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

resource/markdown/cache/DataPersistence.md

Lines changed: 0 additions & 2 deletions
This file was deleted.
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
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>

resource/markdown/cache/Replication.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
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 可以认为是安全校验密码),主节点会对从节点进行权限校验。密码正确后,才进行数据同步,最后不断的、陆陆续续的、持续复制后面的数据,实现这一持续复制数据的实现方式就是复制其操作命令。

0 commit comments

Comments
 (0)