已过期的key如何解决?
设置了expire的key缓存过期了,然而服务器的内存还是会被占用,这是因为redis所基于的两种删除策略
redis有两种策略:

  1. (被动)定时删除
    定时随机的查看过期的key,如果过期则清理删除。(每秒查看次数在redis.conf中的hz配置)
  2. (被动)惰性删除
    当客户端申请一个曾经过期的key的时候,那么redis会查看这个key是否过期,如果过期了,则删除,而后返回一个nil。这种策略
    敌对,不会有太多的损耗,然而内存占用会比拟高。
    所以,尽管key过期了,然而只有没有被redis清理,那么其实内存还是会被占用着的。
    那么如果内存被Redis缓存占用慢了咋办?
    内存占满了,能够应用硬盘,来保留,然而没意义,因为硬盘没有内存快,会影响redis性能。
    所以,当内存占用满了当前,redis提供了一套缓存淘汰机制:MEMORY MANAGEMENT

maxmemory :当内存已使用率达到,则开始清理缓存

* noeviction:旧缓存永不过期,新缓存设置不了,返回谬误* allkeys-lru:革除起码用的旧缓存,而后保留新的缓存(举荐应用)* allkeys-random:在所有的缓存中随机删除(不举荐)* volatile-lru:在那些设置了expire过期工夫的缓存中,革除起码用的旧缓存,而后保留新的缓存* volatile-random:在那些设置了expire过期工夫的缓存中,随机删除缓存* volatile-ttl:在那些设置了expire过期工夫的缓存中,删除行将过期的