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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 视频教程:Java从入门到精通

    视频教程:Java从入门到精通原文:http://www.pconline.com.cn/pcedu/empolder/gj/java/0606/815015.html《Java从入门到精通》视频教程由孙鑫老师录制(作者网站:http://www.sunxin.org),教程通俗易懂,内容全面,带领Java初学者从入门到精通,快速掌握Java编程语言。  说明:学习本套教程,您需要了解一些基本的编程开发基础知识,例如…

    2022年5月16日
    36
  • BN层原理解析_视频解析接口原理

    BN层原理解析_视频解析接口原理前几天看了BN的那篇经典论文《《BatchNormalization_AcceleratingDeepNetworkTrainingbyReducingInternalCovariateShift》,心中留有很多疑惑,今天大概弄明白了,这里记录一下。1训练数据为什么要和测试数据同分布?看看下图,如果我们的网络在左上角的数据训练的,已经找到了两者的分隔面w,如果测试数据是右下角…

    2022年10月15日
    5
  • MFC 消息处理 PeekMessage TranslateMessage DispatchMessage

    MFC 消息处理 PeekMessage TranslateMessage DispatchMessagehttp blog csdn net linlingzhao article details 由 arain 于星期二 11 02 2010 10 44 发表 MSGmessage nbsp nbsp if PeekMessage amp message NULL 0 0 PM REMOVE nbsp nbsp nbsp nbsp nbsp nbsp TranslateMes amp m

    2025年11月1日
    4
  • serialized学习笔记「建议收藏」

    serialized学习笔记「建议收藏」在网上看了一下java的serialized技术,具体就没怎么测试,只是小小总结了一下。serialized主要用于一下情况:a)对对象进行读写操作时;b)使用套接字在网络上传输对象数据时;c)通过RMI传输对象时;若要序列化对象,则只需implementsSerializable接口即可。序列化动作可以在我们需要时进行,即使项目已经进入尾声。我们在序列化对象时,需要…

    2022年6月29日
    27
  • 卡盟平台_卡盟做淘宝对接好吗

    卡盟平台_卡盟做淘宝对接好吗简介:商城风格,三内页模板,全修复无BUG,一键装修主站,一键对接货源,自定义后台登录背景,前台风格自定义背景等,已集成易接口对接易充值接口,修复BUG等上传好后解压文件修改0.system.conf文件输入自己绑定的域名创建一个数据库systemroot密码改为root这里演示默认,运营的时候自行修改密码导入数据库打开apache的配置把最后一行修改为IncludeOptional/home/vhost/*.conf在计划任务里面添加Shell脚本任务名称随便设置执行周期为1

    2022年8月12日
    4
  • mysql的可视化工具_Mysql可视化工具Navicat的基本使用

    mysql的可视化工具_Mysql可视化工具Navicat的基本使用一、写在前面的话相信大多数php初学者刚学习mysql的时候,应该都是在cmd黑窗口中进行一些基本sql的增删改查操作,但是在企业中几乎不会在黑窗口环境中进行sql的编写,主要有两点原因:1.界面不友好(虽然有点逼格)2.容易造成数据的误删除(不像女朋友没了可以再找),下面就给大家介绍mysql可视化工具navicat的常用的操作。至于怎么安装navicat相信大家都会,基本一路next,然后选…

    2025年7月23日
    3

发表回复

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

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