File tree 1 file changed +5
-2
lines changed
1 file changed +5
-2
lines changed Original file line number Diff line number Diff line change @@ -65,7 +65,7 @@ RESP底层采用TCP的连接方式,通过TCP进行传输数据,根据解析
65
65
#### Redis持久化
66
66
持久化的作用,当Redis服务宕机或异常崩溃时,可以通过持久化文件进行数据恢复。
67
67
68
- ##### 1、RDB
68
+ #### 1、RDB
69
69
把当前数据生成快照,保存到磁盘上,rdb持久化可以手动触发,也可以自动触发
70
70
71
71
** RDB手动触发命令:**
@@ -90,7 +90,7 @@ RDB文件是一个紧密的二进制压缩文件,是Redis在某个时间点的
90
90
** RDB缺点:**
91
91
每次进行bgsave操作都需要只想fork操作创建子进程,属于重量级操作,频繁执行成本较高,所以无法做到实时持久化,或者是秒级持久化。
92
92
93
- ##### 2、AOF
93
+ #### 2、AOF
94
94
AOF(Append Only File)持久化是把每次写的命令追加写入日志中,当需要数据时重新执行AOF文件中的命令就可以了。AOF解决了数据持久化的实时性。
95
95
96
96
** AOF持久化流程:**
@@ -133,7 +133,10 @@ gossip协议包含多种消息,包括:ping、pong、meet、fail等:
133
133
> - pong:返回ping和meet,包含自己的状态和其他信息,也可以用于信息广播和更新;
134
134
> - fail:某个节点判断另一个节点fail之后,就发送fail给其他节点,通知其他节点指定的节点宕机了;
135
135
136
+ ------------
137
+
136
138
** 面向集群的Jedis内部实现原理:**
139
+
137
140
1、基于Redis客户端,redis-cli -c指令,客户端可能会挑选任意一个redis实例去发送命令,每个redis实例收到命令,都会计算key对应的hash slot,如果在本地就直接执行,负责返回moved给客户端,让客户端进行重定向到hash slot所在的集群;
138
141
139
142
2、基于JedisCluster的原理,在JedisCluster初始化的时候,就会随机一个node,初始化hashslot -> node 映射表,同时为每个节点创建一个JedisPool连接池。每次基于JedisCluster执行操作,首先JedisCluster都会在本地计算key的hash slot,然后在本地映射表中找到对应的节点。如果redis cluster中的slot产生变化时,JedisCluster执行已经不存在那个node上的key,就会返回moved,那么利用该节点的元数据,更新hash slot -> node 映射表缓存;
You can’t perform that action at this time.
0 commit comments