redis面试题:过期策略、内存淘汰机制

redis的过期策略

定期删除+惰性删除
解释:我们存数据时设置的过期时间,并不是一到时间就一定会被删除掉的,redis在清除key的时候会做一个随机的扫描,这个扫描频率是可以在配置文件中设置的,随机扫描到这个key后发现已经过期了就会把这个key给移除,如果没有扫描到就涉及到了这个惰性删除,在查询的时候先判断一下,如果已经过期了,就删除掉返回null。设置的频率在1-500之间,最好是1-100之间。

redis的内存淘汰机制

  1. volatile-lru:使用LRU算法(最近、最少使用)移除key,只对设置了过期时间的键
  2. allkeys-lru:使用LRU算法移除key
  3. volatile-random:在过期集合中移除随机的key,只对设置了过期时间的键
  4. allkeys-random:移除随机的key
  5. volatile-ttl:移除那些TTL值最小的key,即那些最近要过期的key
  6. noeviction:永不过期(默认),不进行移除

你可能感兴趣的:(redis,面试)