新增热点数据处理方案

pull/4/head
liruyu 3 years ago
parent c0808fee9b
commit b41da914e2

@ -4361,6 +4361,33 @@ Big Key指数据量大的key由于其数据大小远大于其它key导致
### 热点数据
数据库里有2000W数据Redis中只存20W的数据如何保证 Redis 中的数据都是热点数据?
当 Redis 中的数据集上升到一定大小的时候,就需要实施数据淘汰策略,以保证 Redis 的内存不会被撑爆;那么如何保证 Redis 中的数据都是热点数据,需要先看看 Redis 有哪些数据淘汰策略。
**Redis 数据淘汰策略**
- volatile-lru从已设置过期时间的数据集中挑选最近最少使用的数据淘汰
- volatile-ttl从已设置过期时间的数据集中挑选将要过期的数据淘汰
- volatile-random从已设置过期时间的数据集中任意选择数据淘汰
- allkeys-lru当内存不足以容纳新写入数据时移除最近最少使用的key
- allkeys-random从数据集中任意选择数据淘汰
- no-eviction禁止淘汰数据也就是说当内存不足时新写入操作会报错
**到了4.0版本后,又增加以下两种淘汰策略:**
- volatile-lfu从已设置过期时间的数据集中挑选最不经常使用的数据淘汰注意lfu和lru的区别
- allkeys-lfu当内存不足以容纳新写入数据时移除最不经常使用的key
**如何选择策略规则**
针对题目中的问题,还需要考虑数据的分布情况:
- 如果数据呈现幂律分布一部分数据访问频率高一部分数据访问频率低则可以使用allkeys-lru或allkeys-lfu
- 如果数据呈现平等分布所有的数据访问频率都相同则使用allkeys-random
# 消息队列

Loading…
Cancel
Save