gbless 发表于 2018-11-6 07:57:03

redis 下key的过期时间详解 :expire

  memcached 和 redis 的set命令都有expire参数,可以设置key的过期时间。但是redis是一个可以对数据持久化的key-value database,它的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
页: [1]
查看完整版本: redis 下key的过期时间详解 :expire