MST

星途 面试题库

面试题:Redis内存管理机制之中等难度

请阐述Redis中常用的内存淘汰策略有哪些,并说明在什么场景下适合使用LRU淘汰策略?
22.7万 热度难度
数据库Redis

知识考点

AI 面试

面试题答案

一键面试

Redis常用内存淘汰策略:

  1. noeviction:当内存使用达到上限时,新写入操作会报错。此策略一般用于不希望数据被删除的场景,如缓存数据库配置信息等。
  2. allkeys-lru:从所有键值对中,移除最近最少使用的键值对。适用于希望缓存数据尽可能都是热点数据的场景,例如热门文章缓存。
  3. volatile-lru:从设置了过期时间的键值对中,移除最近最少使用的键值对。适合只对过期数据采用LRU淘汰策略,而不过期数据永久保留的场景。
  4. allkeys-random:从所有键值对中随机移除键值对。该策略不考虑数据的访问频率和过期时间,适合数据无明显冷热区分的场景。
  5. volatile-random:从设置了过期时间的键值对中随机移除键值对。常用于对过期数据进行随机淘汰的场景。
  6. volatile-ttl:从设置了过期时间的键值对中,移除剩余过期时间最短的键值对。适用于希望优先淘汰即将过期的数据的场景。

LRU淘汰策略适用场景:

  1. 热点数据缓存:在Web应用程序中缓存热门文章、商品信息等。LRU策略能保证经常被访问的数据始终留在缓存中,提高缓存命中率。
  2. 用户会话缓存:缓存用户登录会话信息等。如果用户长时间不活动,其会话信息可通过LRU策略被淘汰,节省内存空间。
  3. 分布式系统中的缓存:在分布式缓存场景下,各节点采用LRU策略可以有效管理内存,并且保证缓存中的数据尽可能是最近使用过的热点数据,提升系统整体性能。