redis设置过期时间后再set还用设置时间吗_java中参数传递的两种方式

redis设置过期时间后再set还用设置时间吗_java中参数传递的两种方式redis如何设置过期时间memcached和redis的set命令都有expire参数,可以设置key的过期时间。但是redis是一个可以对数据持久化的key-value数据库,它的key过期策略还是和memcached有所不同的。梳理,整理如下:redis通过expire命令来设置key的过期时间。****语法:redis.expire(key,expiration)…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

redis如何设置过期时间

memcached 和 redis 的set命令都有expire参数,可以设置key的过期时间。

但是redis是一个可以对数据持久化的key-value 数据库,

它的key过期策略还是和memcached有所不同的。

梳理,整理如下:

redis通过expire命令来设置key的过期时间。

****语法:redis.expire(key, expiration)

  1. 在小于2.1.3的redis版本里,只能对key设置一次expire。
    redis2.1.3和之后的版本里,可以多次对key使用expire命令,更新key的expire time。

  2. redis术语里面,把设置了expire time的key 叫做:volatile keys。 意思就是不稳定的key。

  3. 如果对key使用set或del命令,那么也会移除expire time。尤其是set命令,
    这个在编写程序的时候需要注意一下。

  4. redis2.1.3之前的老版本里,如果对volatile keys 做相关写入操作(LPUSH,LSET),
    和其他一些触发修改value的操作时,redis会删除该key。 也就是说 :

redis.expire(key,expiration);

redis.lpush(key,field,value);

redis.get(key) //return null

redis2.1.3之后的版本里面没有这个约束,可以任意修改。

redis.set(key,100);

redis.expire(key,expiration);

redis.incr(key)

redis.get(key)

//redis2.2.2 return 101; redis<2.1.3 return 1;

  1. redis对过期键采用了lazy expiration:在访问key的时候判定key是否过期,如果过期,

则进行过期处理。其次,每秒对volatile keys 进行抽样测试,如果有过期键,

那么对所有过期key进行处理。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/189323.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 页面加载时给的子元素的第一个元素加class

    页面加载时给的子元素的第一个元素加class

    2021年11月3日
    47
  • Vue学习笔记之Es6转ES5的babel应用

    Vue学习笔记之Es6转ES5的babel应用1、由于目前ES6还不能很好的支持目前常见的浏览器,所以在打包的时候将ES6的代码转换为ES5,转换时可以通过babel进行转换;2、官网说明:3、环境配置,为了更好地匹配项目环境,我这边安装的是7的版本:cnpminstall–save-devbabel-loader@7babel-corebabel-preset-es2015可以使用options属性来给loader传递选项:4、重新编译后,发现编译后的js文件中,没有了ES6中的const,全部通过E

    2022年9月24日
    3
  • Xshell 7 提示 “要继续使用此程序,您必须应用最新的更新或使用新版本”

    Xshell 7 提示 “要继续使用此程序,您必须应用最新的更新或使用新版本”Xshell7忽然不能用,提示“”要继续使用此程序,您必须应用最新的更新或使用新版本“”解决办法:修改电脑的系统时间。右下角日期-右键“调整日期/时间(A)”-手动设置日期和时间-将日期调整到2017年即可。之前Xshell6和Xshell5也会包这样的错误,是因为xshell比较傻叉,需要你强制更新到最近版本否则就不能使用。也解决办法就是找到xshell的解决目录,用UE打开nslicense.dll文件:xshell6和xshell5解决的具体步骤步骤1:下载U…

    2022年7月15日
    102
  • 索引是否覆盖例子_数据库索引的概念及作用

    索引是否覆盖例子_数据库索引的概念及作用(1)select*frommyTestwherea=3andb=5andc=4;—-abc顺序abc三个索引都在where条件里面用到了,而且都发挥了作用(2)select*frommyTestwherec=4andb=6anda=3;where里面的条件顺序在查询之前会被mysql自动优化,效果跟上一句一样(3)select*frommyTestwherea=3andc=7;a用到索引,b没有用,所以c是没有用到索…

    2022年10月9日
    3
  • 有序的hashmap_treemap是有序的吗

    有序的hashmap_treemap是有序的吗如何给HashMap中的值排序?这个问题很多人都遇到过,很常见的一个方案是使用LinkedHashMap,因为LinkedHashMap可以记住元素放入的顺序,可以认为是真正的“有序”(想让HashMap有序是不可能的),我比较喜欢。然而问题是往往数据已经封装在了HashMap中,我们必须手动的排序后再放入LinkedHashMap,这当然也就成了思路,代码实现起来也很简单,写出来看起来还挺舒服的…

    2022年9月24日
    3
  • 正确处理Ordered Broadcasts「建议收藏」

    正确处理Ordered Broadcasts「建议收藏」
    原文:http://aoandroid.com/node/1414
     
     
    最近,Android官方开发员博客(DevelopersBlog)登载了Google巴西分布的一名工程师(
    BeloHorizonte )的文章,介绍了正确使用Broadcast的概念和实例分析。该文章在概念上纠正了很多开发人员对Broadcast处理中存在的严重问题,并指出这反映了开发文档存在缺陷,没有解释清楚。
    Broadcast是Android的一个很有用的概念

    2022年6月29日
    25

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号