Skip to content

Commit 0cf9de3

Browse files
authored
Update 数据库-Redis.md
1 parent 8b526a3 commit 0cf9de3

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

MD/数据库-Redis.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,31 @@ Redis是一个键值对数据库,数据库中的键值对由字典保存。每
1313

1414
不同的数据类型的具体实现(压缩列表、跳表必看)请看: https://redisbook.readthedocs.io/en/latest/index.html#id3
1515

16+
在线文档:http://118.25.23.115/
17+
18+
压缩链表原理:
19+
在内存中是连续存储的,但是不同于数组,为了节省内存,ziplist的每个元素所占的内存大小可以不同
20+
ziplist将一些必要的偏移量信息记录在了每一个节点里,使之能跳到上一个节点或下一个节点
21+
22+
与跳表应用场景:
23+
当zset满足以下两个条件的时候,使用ziplist:
24+
1. 保存的元素少于128个
25+
2. 保存的所有元素大小都小于64字节
26+
27+
redis数据过期策略:
28+
定时过期:每个设置过期时间的key都需要创建一个定时器,到过期时间就会立即清除
29+
惰性过期:只有当访问一个key时,才会判断该key是否已过期,过期则清除
30+
定期过期:每隔一定的时间,会扫描一定数量的数据库的expires字典中一定数量的key,并清除其中已过期的key
31+
32+
内存淘汰策略:
33+
no-eviction:当内存不足以容纳新写入数据时,新写入操作会报错
34+
allkeys-lru:当内存不足以容纳新写入数据时,在键空间中,移除最近最少使用的key
35+
allkeys-random:当内存不足以容纳新写入数据时,在键空间中,随机移除某个key
36+
volatile-lru:当内存不足以容纳新写入数据时,在设置了过期时间的键空间中,移除最近最少使用的key
37+
volatile-random:当内存不足以容纳新写入数据时,在设置了过期时间的键空间中,随机移除某个key
38+
volatile-ttl:当内存不足以容纳新写入数据时,在设置了过期时间的键空间中,有更早过期时间的key优先移除
39+
40+
1641
## 集群模式
1742
来源:
1843
https://my.oschina.net/zhangxufeng/blog/905611

0 commit comments

Comments
 (0)