redis的过期策略
定期删除+惰性删除
解释:我们存数据时设置的过期时间,并不是一到时间就一定会被删除掉的,redis在清除key的时候会做一个随机的扫描,这个扫描频率是可以在配置文件中设置的,随机扫描到这个key后发现已经过期了就会把这个key给移除,如果没有扫描到就涉及到了这个惰性删除,在查询的时候先判断一下,如果已经过期了,就删除掉返回null。设置的频率在1-500之间,最好是1-100之间。
redis的内存淘汰机制
- volatile-lru:使用LRU算法(最近、最少使用)移除key,只对设置了过期时间的键
- allkeys-lru:使用LRU算法移除key
- volatile-random:在过期集合中移除随机的key,只对设置了过期时间的键
- allkeys-random:移除随机的key
- volatile-ttl:移除那些TTL值最小的key,即那些最近要过期的key
- noeviction:永不过期(默认),不进行移除