美文网首页
数据库里有2000W数据,Redis中只存20W的数据,如何保证

数据库里有2000W数据,Redis中只存20W的数据,如何保证

作者: 会点代码的大叔 | 来源:发表于2019-11-14 15:05 被阅读0次

面试的时候很容易被问到缓存的问题,比如数据库里有2000W数据,Redis中只存20W的数据,如何保证 Redis 中的数据都是热点数据?
当 Redis 中的数据集上升到一定大小的时候,就需要实施数据淘汰策略,以保证 Redis 的内存不会被撑爆;那么如何保证 Redis 中的数据都是热点数据,需要先看看 Redis 有哪些数据淘汰策略。

一、Redis 数据淘汰策略

1.volatile-lru

从已设置过期时间的数据集中,挑选最近最少使用的数据淘汰;

2.volatile-ttl

从已设置过期时间的数据集中,挑选将要过期的数据淘汰;

3.volatile-random

从已设置过期时间的数据集中,任意选择数据淘汰;

4.allkeys-lru

当内存不足以容纳新写入数据时,移除最近最少使用的key;

5.allkeys-random

从数据集中任意选择数据淘汰;

6.no-eviction

禁止淘汰数据,也就是说当内存不足时,新写入操作会报错。

到了4.0版本后,又增加以下两种淘汰策略:

7.volatile-lfu

从已设置过期时间的数据集中,挑选最不经常使用的数据淘汰(注意lfu和lru的区别);

8.allkeys-lfu

当内存不足以容纳新写入数据时,移除最不经常使用的key。

二、如何选择策略规则

针对题目中的问题,还需要考虑数据的分布情况:

  • 如果数据呈现幂律分布,一部分数据访问频率高,一部分数据访问频率低,则可以使用allkeys-lru或allkeys-lfu;
  • 如果数据呈现平等分布,所有的数据访问频率都相同,则使用allkeys-random。

更多资料和文章,请扫码关注...

image

相关文章

  • 数据库里有2000W数据,Redis中只存20W的数据,如何保证

    面试的时候很容易被问到缓存的问题,比如数据库里有2000W数据,Redis中只存20W的数据,如何保证 Redis...

  • 热点数据

    MySQL里有2000w数据,redis中只存20w的数据,如何保证redis中的数据都是热点数据相关知识:red...

  • Redis和Thread相关面试题

    小群,一起交流飞向架构师 1. MySQL里有2000w数据,redis中只存20w的数据,如何保证redis中的...

  • 【Java进阶营】Redis的持久化策略

    如何保证Redis宕机之后重启可以将数据进行恢复?一般需要定时进行持久化将内存中的数据写入到硬盘中。Redis支持...

  • 面试题一

    Redis 如何保证防止穿透 和雪崩Redis 如何模糊查询数据Redis 哨兵和cluster 架构有何区别S...

  • 热点数据问题

    1、如何保证redis数据都是热点数据。我们采用有序集合zset进行保存,每次点击,都会更加响应数据的得分。然后定...

  • Redis 常用面试点和开发规范

    认识redis: Redis是Remote Dictionary Server(远程数据服务)的缩写,是把数据存...

  • 数据库和缓存数据一致性问题

    业务使用Redis做缓存,当有数据更新时,如何保证缓存及时更新 读数据流程 请求到来,业务代码会先查Redis,查...

  • Redis 总结

    Redis 底层数据结构 Redis 数据库里面的每个键值对(key-value)都是由对象(object)组成的...

  • 如何用redis做缓存

    redis缓存 在互联网应用中经常需要用redis来缓存热点数据。 redis数据在内存,可以保证数据读取的高效,...

网友评论

      本文标题:数据库里有2000W数据,Redis中只存20W的数据,如何保证

      本文链接:https://www.haomeiwen.com/subject/snerictx.html