redis 过期时间

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<2.1.3 return 1;

5. redis对过期键采用了lazy
expiration:在访问key的时候判定key是否过期,如果过期,则进行过期处理。其次,每秒对volatile keys
进行抽样测试,如果有过期键,那么对所有过期key进行处理。

时间: 2024-08-26 04:31:38

redis 过期时间的相关文章

redis学习(五) redis过期时间

redis过期时间 1.redis过期时间介绍 有时候我们并不希望redis的key一直存在.例如缓存,验证码等数据,我们希望它们能在一定时间内自动的被销毁.redis提供了一些命令,能够让我们对key设置过期时间,并且让key过期之后被自动删除. 2.redis过期时间相关命令 1.EXPIRE PEXPIRE EXPIRE 接口定义:EXPIRE key "seconds" 接口描述:设置一个key在当前时间"seconds"(秒)之后过期.返回1代表设置成功,

Redis——过期时间

Redis 所有的数据类型都可以设置过期时间. 过期是以对象为单位 比如一个hash结构的过期值的是整个hash对象的过期 而不是其中的某个key的过期. 如果一个字符串已经设置了过期时间 ,再次调用set方法修改的话 它的过期时间会消失. 原文地址:https://www.cnblogs.com/gjh99/p/12094206.html

php操作redis和memcache过期时间

php-redis 设置过期时间setTimeOut 命令行expireredis过期时间redis术语里面,把设置了expire time的key 叫做:volatile keys. 意思就是不稳定的key.没有设置过期时间的也就是永久存储 set:set('key','value')将值 value 关联到 key setTimeOut:setTimeout('x', 3);设置过期时间 setex:setex('key', 3600, 'value')带生存时间的写入值 这个命令类似于以下

redis文档翻译_key设置过期时间

Available since 1.0.0.    使用开始版本1.01 Time complexity: O(1)  时间复杂度O(1) 出处:http://blog.csdn.net/column/details/redisbanli.html Set a timeout on key. After the timeout has expired, the key will automatically be deleted. A key with an associated timeout

redis key设置过期时间

最近做的一个项目需要用到redis存储storm计算的结果,使用过程中发现我的redis使用内存空间一直在增大,颇为好奇,因为我都设置了key的过期时间了呀.. 最后一看代码才发现问题.原来我都是在代码中先调用expire()方法调用顺序有问题. expire(key,time) 如果当前redis没有这个key的时候默认是不操作的.哎,写代码千万得严谨啊

redis 全局命令 查看所有的键,删除键,检查键是否存在,获取过期时间,键的数据结构类型

Redis有5中数据结构,他们是键值对中的值,对于键来说,有一些通用的命令: 一.查看所有键 keys * 二.获取键总数:dbsize 三.检查键是否存在 exists 如果存在返回1,不存在返回0 四.删除键  del key [key --] 正常情况下返回结果为删除键的个数,假如删除了一个不存在的键,就返回0 同时del命令可以支持同时删除多个键 五.键过期expire key second 当redis的键超过过期时间之后,会自动删除 Ttl命令可以查看上虞的过期时间: 返回-1:键没

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

Redis是一个开源的Key-Value数据缓存,和Memcached类似. Redis多种类型的value,包括string(字符串).list(链表).set(集合).zset(sorted set --有序集合)和hash(哈希类型). Jedis 是 Redis 官方首选的 Java 客户端开发包. redis通过expire命令来设置key的过期时间. 语法:redis.expire(key, expiration) 1. 在小于2.1.3的redis版本里,只能对key设置一次exp

redis 一二事 - 设置过期时间,以文件夹形式展示key显示缓存数据

在使用redis时,有时回存在大量数据的时候,而且分类相同,ID相同 可以使用hset来设置,这样有一个大类和一个小分类和一个value组成 但是hset不能设置过期时间 过期时间只能在set上设置 1 // 向redis中添加缓存 2 jedisClient.set(REDIS_ITEM_KEY + ":" + itemId + ":" + ITEM_KEY, JsonUtils.objectToJson(item)); 3 // 设置key的过期时间 4 jed

laravel redis存数组并设置过期时间

$data = [ 'zoneList'=>$zoneList, 'eqList' => $eqList, 'mdateList' => $mdateList, 'workhoursList' => $workhoursList, 'pricerangeList' => $pricerangeList, ]; Redis::set($cacheKey, serialize($data)); Redis::expire($cacheKey, 300); laravel门面set