• 3.6 Redis缓存过期机制


     
    

    Redis缓存过期机制

    Redis的key设置了过期时间后(expire);虽然key过期查询不了,但是还是会占用服务器内存;

    过期的缓存删除redis有两种策略

    1. 定期删除 (主动)

    2. 惰性删除(被动)

    主动删除

    redis定时检测缓存key是否过期,默认10次一秒 (区间 1-500)

    也可以提升他的检查频率,但是这样做会使CPU被占用的更多;

    惰性删除

    客户端请求的时候,当检测到这个key是过期的时候,才会对这个过期缓存进行删除;

    这么做就对cpu非常友好,但是缺点就是用户如果一直不请求这个资源,那么这个过期key就会一直存在在内存中,占用内存资源;

    针对于设置了expire的key

    1、(主动)定期删除 (固定时间去检查过期key,进行删除,默认每秒检查10次)

    2、(被动)惰性删除   (等客户端请求,请求到这个key,发现这个key过期了就删除)

    内存淘汰管理机制

    memory management

    缩写解释:

        lru: 最久远被用到的

        lfu: 最少被使用到的

        volatile: 带有过期时间的

        volatile-ttl: 删除最快过期的key

    * noeviction:旧缓存永不过期,新缓存设置不了,返回错误
    * allkeys-lru:清除最少用的旧缓存,然后保存新的缓存(推荐使用)
    * allkeys-random:在所有的缓存中随机删除(不推荐)
    * volatile-lru:在那些设置了expire过期时间的缓存中,清除最少用的旧缓存,然后保存新的缓存
    * volatile-random:在那些设置了expire过期时间的缓存中,随机删除缓存
    * volatile-ttl:在那些设置了expire过期时间的缓存中,删除即将过期的
     

  • 相关阅读:
    会计制度设计(全)
    【项目经验】elementui抽屉(从下到上方向)实现向上拉伸
    网络协议--DNS:域名系统
    一文读懂K-Means原理与Python实现
    日增进:Oracle优化器规则与切换
    websocket入门
    Mybatis简介(二)
    通用轻量级机器人设备 -- 研究和设计要点
    Python + Django4 搭建个人博客(四): 创建APP和项目配置
    Java 流(Stream)、文件(File)和IO
  • 原文地址:https://blog.csdn.net/Xx13624558575/article/details/126560253