【面试】Redis使用场景—缓存—数据淘汰策略
2023-12-14 11:04:55
Redis使用场景—缓存—数据淘汰策略
Redis有8种不同的数据淘汰策略;
- noeviction:不淘汰任何key,不允许写入新key,默认;
- volatile-ttl:对设置ttl的key,ttl值越小越先被淘汰;
- allkeys-random:所有key随机淘汰;
- volatile-random:设置ttl的key随机淘汰;
- allkeys-lru:所有key,最近最少使用的被淘汰;
- volatile-lru:设置ttl的key,最近最少使用的被淘汰;
- allkeys-lfu:所有key,最少频率使用的被淘汰;
- volatile-lfu:设置ttl的key,最少频率使用的被淘汰;
**面试官:** Redis的数据淘汰策略有哪些?
**候选人:**
- 嗯,这个在redis中提供了很多种,默认是noeviction,不删除任何数据,内部不足直接报错;
- 是可以在redis的配置文件中进行设置的,里面有两个非常重要的概念,一个是LRU,另外一个是LFU;
- LRU的意思就是最少最近使用,用当前时间减去最后一次访问时间,这个值越大则淘汰优先级越高;
- LFU的意思是最少频率使用,会统计每个key的访问频率,值越小淘汰优先级越高;
- 我们在项目设置的是allkeys-lru,挑选最近最少使用的数据淘汰,把一些经常访问的key留在redis中
**面试官:** 数据库有1000万数据,Redis只能缓存20w数据,如何保证Redis中的数据都是热点数据?
**候选人:**
- 可以使用 allkeys-lru (挑选最近最少使用的数据淘汰)淘汰策略,那留下来的都是经常访问的热点数据
**面试官:** Redis的内存用完了会发生什么?
**候选人:**
- 不同的淘汰策略,效果会不一样....
文章来源:https://blog.csdn.net/qq_42411696/article/details/134986737
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!