zoukankan      html  css  js  c++  java
  • redis使用笔记

    过期删除策略:

    Redis无论有没有设置expire,他都会遵循redis的配置好的删除机制,在配置文件里设置:
    redis最大内存不足"时,数据清除策略,默认为"volatile-lru"。
    volatile-lru  ->对"过期集合"中的数据采取LRU(近期最少使用)算法.如果对key使用"expire"指令指定了过期时间,那么此key将会被添加到"过期集合"中。将已经过期/LRU的数据优先移除.如果"过期集合"中全部移除仍不能满足内存需求,将OOM.
    allkeys-lru ->对所有的数据,采用LRU算法
    volatile-random ->对"过期集合"中的数据采取"随即选取"算法,并移除选中的K-V,直到"内存足够"为止. 如果如果"过期集合"中全部移除全部移除仍不能满足,将OOM
    allkeys-random ->对所有的数据,采取"随机选取"算法,并移除选中的K-V,直到"内存足够"为止
    volatile-ttl ->对"过期集合"中的数据采取TTL算法(最小存活时间),移除即将过期的数据.
    noeviction ->不做任何干扰操作,直接返回OOM异常
    另外,如果数据的过期不会对"应用系统"带来异常,且系统中write操作比较密集,建议采取"allkeys-lru"。

    由以上可以看出,对没设置expire的数据,产生影响的是allkeys-lru机制,allkeys-random。

    所以redis没设置expire的数据是否会删除,是由你自己选择的删除机制决定的。

    过期时间设置:

    redisTemplate.expireAt(redisKey, new Date(1534473165));
    redisTemplate.expire("max",tempTime,TimeUnit.SECONDS);
    redisTemplate.opsForValue().set("max", tempCount);

    查看过期时间:

    redisTemplate.getExpire(redisKey)

     PS.如果不设置过期时间,则返回-1,。表示永不过期

    
    

  • 相关阅读:
    OpenCV2:总结篇 PS算法实现
    DirectX9:第四部分 顶点着色器
    DirectX9:基础篇 第一章 初始化Direct3D
    OpenCV2:高中篇 图像锐化技术-边缘检测算子
    他山之石:C++书籍推荐
    C89:论回调函数
    OpenCV2:幼儿园篇 第六章 图像转换
    四维空间引发-维度空间(0-10)来自我的教授的班长
    802.11全家
    提示窗UIAlertView与UIAlertController的用法(持续更新中)
  • 原文地址:https://www.cnblogs.com/xujanus/p/9486112.html
Copyright © 2011-2022 走看看