redis更新key的存在时间

在 Redis 中,可以为给定key设置生存时间,当key过期时(生存时间为0),它会被自动删除。

在 Redis 中,带有生存时间的key被称为『易失的』(volatile)。

生存时间可以通过使用DEL命令来删除整个key来移除,或者被SETGETSET命令覆写(overwrite),这意味着,如果一个命令只是修改(alter)一个带生存时间的key的值而不是用一个新的key值来代替(replace)它的话,那么生存时间不会被改变。

比如说,对一个key执行INCR命令,对一个列表进行LPUSH命令,或者对一个哈希表执行HSET命令,这类操作都不会修改key本身的生存时间。

另一方面,如果使用RENAME对一个key进行改名,那么改名后的key的生存时间和改名前一样。

RENAME命令的另一种可能是,尝试将一个带生存时间的key改名成另一个带生存时间的another_key,这时旧的another_key(以及它的生存时间)会被删除,然后旧的key会改名为another_key,因此,新的another_key的生存时间也和原本的key一样。

使用PERSIST命令可以在不删除key的情况下,移除key的生存时间,让key重新成为一个『持久的』(persistent)key

在java的org.springframework.data.redis.core有接口ValueOperations

在保存时设置该条数据的生存时间

/**

* Set {@codevalue} for {@codekey}.

*

*@paramkeymust not be {@literalnull}.

*@paramvalue

*@seeRedis Documentation: SET

*/

void set(K key,V value);

/**

* Set the {@codevalue} and expiration {@codetimeout} for {@codekey}.

*

*@paramkeymust not be {@literalnull}.

*@paramvalue

*@paramtimeout

*@paramunitmust not be {@literalnull}.

*@seeRedis Documentation: SETEX

*/

void set(K key,V value, long timeout,TimeUnit unit);

/**

作者:谁在烽烟彼岸

链接:https://www.jianshu.com/p/7503200c68ad

來源:简书

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在 Redis 中,可以为给定key设置生存时间,当key过期时(生存时间为0),它会被自动删除。 在 Redis...
    谁在烽烟彼岸阅读 4,736评论 0 1
  • Key(键) 1.DEL DEL key [key ...]删除给定的一个或多个key。不存在的key会被忽略。返...
    layjoy阅读 781评论 0 1
  • NOSQL类型简介键值对:会使用到一个哈希表,表中有一个特定的键和一个指针指向特定的数据,如redis,volde...
    MicoCube阅读 4,044评论 2 27
  • 本文将从Redis的基本特性入手,通过讲述Redis的数据结构和主要命令对Redis的基本能力进行直观介绍。之后概...
    kelgon阅读 61,234评论 23 625
  • 瘦身意味了什么呢?人们瘦身味了更好的身体和更匀称的身材。那么app呢?提高下载转化率,用户在无wifi情况下少用流...
    乐之飞于阅读 622评论 0 3