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

2022-11-09 15:59:18 浏览数 (2)

大家好,又见面了,我是你们的朋友全栈君。

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进行处理。

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

0 人点赞