MySQL 里有 2000w 数据,Redis 中只存 20w 的数据,如何保证 redis 中的数据都是热点数据?
1.Redis 过期删除策略
1)惰性删除:放任键过期不管,但是每次从键空间中获取键时,都检查取得的键是否过期,如果过期的话,就删除该键;如果没有过期,就返回该键。
2)定期删除:每隔一段时间程序就对数据库进行一次检查,删除里面的过期键。至于要删除多少过期键,以及要检查多少个数据库,则由算法决定。
2.内存淘汰策略
Redis 内存数据集大小上升到一定大小的时候,就会施行数据淘汰策略。
LRU全称Least recently used,意思为淘汰掉最久未使用(即最老)的一条数据;
LFU全称Least-frequently used,意思为淘汰掉过去被访问次数最少的一条数据
Redis 提供 8 种数据淘汰策略: