zoukankan      html  css  js  c++  java
  • [redis] -- 过期策略篇

    过期处理

    • 定期删除
      • redis默认是每隔 100ms 就随机抽取一些设置了过期时间的key,检查其是否过期,如果过期就删除
    • 惰性删除
      • 定期删除可能会导致很多过期 key 到了时间并没有被删除掉。所以就有了惰性删除。假如你的过期 key,靠定期删除没有被删除掉,还停留在内存里,除非你的系统去查一下那个 key,才会被redis给删除掉

    过期策略

    • 6种数据淘汰策略
      • volatile-lru:从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰
      • volatile-ttl:从已设置过期时间的数据集(server.db[i].expires)中挑选将要过期的数据淘汰
      • volatile-random:从已设置过期时间的数据集(server.db[i].expires)中任意选择数据淘汰
      • allkeys-lru:当内存不足以容纳新写入数据时,在键空间中,移除最近最少使用的key(这个是最常用的)
      • allkeys-random:从数据集(server.db[i].dict)中任意选择数据淘汰
      • no-eviction:禁止驱逐数据,也就是说当内存不足以容纳新写入数据时,新写入操作会报错
    • 4.0版本后增加以下两种:
    • volatile-lfu:从已设置过期时间的数据集(server.db[i].expires)中挑选最不经常使用的数据淘汰
    • allkeys-lfu:当内存不足以容纳新写入数据时,在键空间中,移除最不经常使用的key
  • 相关阅读:
    java的多线程学习,第二记
    java多线程的学习
    长城
    2018-12-6
    mysql的笔记
    springboot用jpa生成表,没有外键
    idea 使用方法
    Oracle数据库中文乱码问题
    JAVA-Could not create the Java virtual machine java启动失败
    log4j日志如何在ssh中配置?
  • 原文地址:https://www.cnblogs.com/lycsmzl/p/13213863.html
Copyright © 2011-2022 走看看