MySQL里有2000w数据,Redis中只存20w的数据,如何保证Redis中的数据都是热点数据?

发布于 2019-12-19 21:51:47
关注者
2
被浏览
3722
1 个回答
  • 面试哥
    面试哥 2019-12-19
    为面试而生,有面试问题,就找面试哥。

    redis 配置文件 redis.conf 中有相关注释,大家可以自行查阅或者通过这个网址查看: http://download.redis.io/redis-stable/redis.conf

    redis 提供 6种数据淘汰策略:

    1. volatile-lru:从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰
    2. volatile-ttl:从已设置过期时间的数据集(server.db[i].expires)中挑选将要过期的数据淘汰
    3. volatile-random:从已设置过期时间的数据集(server.db[i].expires)中任意选择数据淘汰
    4. allkeys-lru:当内存不足以容纳新写入数据时,在键空间中,移除最近最少使用的key(这个是最常用的)
    5. allkeys-random:从数据集(server.db[i].dict)中任意选择数据淘汰
    6. no-eviction:禁止驱逐数据,也就是说当内存不足以容纳新写入数据时,新写入操作会报错。这个应该没人使用吧!

    4.0版本后增加以下两种:

    1. volatile-lfu:从已设置过期时间的数据集(server.db[i].expires)中挑选最不经常使用的数据淘汰
    2. allkeys-lfu:当内存不足以容纳新写入数据时,在键空间中,移除最不经常使用的key
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看