docs: update articles

This commit is contained in:
yanglbme
2022-09-26 10:34:20 +08:00
parent 94e3510357
commit e0ead3e559
63 changed files with 821 additions and 811 deletions

View File

@@ -8,7 +8,7 @@ Redis 的过期策略都有哪些?内存淘汰机制都有哪些?手写一
常见的有两个问题:
- 往 Redis 写入的数据怎么没了?
- 往 Redis 写入的数据怎么没了?
可能有同学会遇到,在生产环境的 Redis 经常会丢掉一些数据,写进去了,过一会儿可能就没了。我的天,同学,你问这个问题就说明 Redis 你就没用对啊。Redis 是缓存,你给当存储了是吧?
@@ -16,7 +16,7 @@ Redis 的过期策略都有哪些?内存淘汰机制都有哪些?手写一
那既然内存是有限的,比如 Redis 就只能用 10G你要是往里面写了 20G 的数据,会咋办?当然会干掉 10G 的数据,然后就保留 10G 的数据了。那干掉哪些数据?保留哪些数据?当然是干掉不常用的数据,保留常用的数据了。
- 数据明明过期了,怎么还占用着内存?
- 数据明明过期了,怎么还占用着内存?
这是由 Redis 的过期策略来决定。
@@ -42,12 +42,12 @@ Redis 过期策略是:**定期删除+惰性删除**。
Redis 内存淘汰机制有以下几个:
- noeviction: 当内存不足以容纳新写入数据时,新写入操作会报错,这个一般没人用吧,实在是太恶心了。
- **allkeys-lru**:当内存不足以容纳新写入数据时,在**键空间**中,移除最近最少使用的 key这个是**最常用**的)。
- allkeys-random当内存不足以容纳新写入数据时在**键空间**中,随机移除某个 key这个一般没人用吧为啥要随机肯定是把最近最少使用的 key 给干掉啊。
- volatile-lru当内存不足以容纳新写入数据时在**设置了过期时间的键空间**中,移除最近最少使用的 key这个一般不太合适
- volatile-random当内存不足以容纳新写入数据时在**设置了过期时间的键空间**中,**随机移除**某个 key。
- volatile-ttl当内存不足以容纳新写入数据时在**设置了过期时间的键空间**中,有**更早过期时间**的 key 优先移除。
- noeviction: 当内存不足以容纳新写入数据时,新写入操作会报错,这个一般没人用吧,实在是太恶心了。
- **allkeys-lru**:当内存不足以容纳新写入数据时,在**键空间**中,移除最近最少使用的 key这个是**最常用**的)。
- allkeys-random当内存不足以容纳新写入数据时在**键空间**中,随机移除某个 key这个一般没人用吧为啥要随机肯定是把最近最少使用的 key 给干掉啊。
- volatile-lru当内存不足以容纳新写入数据时在**设置了过期时间的键空间**中,移除最近最少使用的 key这个一般不太合适
- volatile-random当内存不足以容纳新写入数据时在**设置了过期时间的键空间**中,**随机移除**某个 key。
- volatile-ttl当内存不足以容纳新写入数据时在**设置了过期时间的键空间**中,有**更早过期时间**的 key 优先移除。
### 手写一个 LRU 算法