`
lijitaoccnu
  • 浏览: 37102 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

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

分享到:
评论

相关推荐

    java操作Redis缓存设置过期时间的方法

    Java 操作 Redis 缓存设置过期时间的方法 Java 操作 Redis 缓存设置过期时间是指在 Java 应用程序中使用 Redis 缓存时设置缓存项的过期时间,以便自动删除缓存项。下面将详细介绍 Java 操作 Redis 缓存设置过期...

    redis命令集合,redis命令详解

    EXPIRE设置某个key的过期时间(秒),(EXPIRE bruce 1000:设置bruce这个key1000秒后系统自动删除)注意:如果在还没有过期的时候,对值进行了改变,那么那个值会被清除。 TTL查找某个key还有多长时间过期,返回时间秒 ...

    Redis内存过期策略

    ### Redis内存过期策略详解 #### 一、引言 Redis作为一款高性能的键值存储系统,在实际应用中经常被用作缓存解决方案。为了确保内存的有效利用与系统的稳定性,Redis设计了一套高效的内存管理机制,其中包括了针对...

    flink-connector-redis_2.11-1.1.5.jar

    flink连接redis设置过期时间和密码

    redis缓存过期设置1

    同样,`allkeys-random` 不考虑键的过期时间,而是简单地随机选择并移除键,包括那些没有设置过期时间的键。这可能导致数据的一致性问题,但减少了处理复杂策略的开销。 5. **volatile-ttl**: 这种策略选择的是...

    监听redis过期key,做对应业务处理

    需要注意的是,Spring Data Redis默认并不直接支持Key过期事件的监听,而是通过Redis的`EXPIRE`命令设置Key的过期时间。当Key过期时,Redis会自动删除,而Spring Data Redis的缓存事件监听器会在缓存被清除时触发`...

    22_redis的过期策略能介绍一下?要不你再手写一个LRU?.zip

    1. **定时过期(Timing Expire)**:在设置键的过期时间时,Redis会创建一个定时器,当到达指定时间后,键就会被自动删除。这种策略效率较高,但会占用较多的CPU资源。 2. **惰性过期(Lazy Expire)**:如果键设置...

    flink-connector-redis_2.11-1.1-SNAPSHOT

    描述中提到,“1.0无法支持过期的时间”,这指的是在Flink 1.0版本的Redis连接器中,没有内置功能来设置Redis键的过期时间。这意味着数据一旦写入Redis,如果没有其他机制,它将永久存储,无法自动删除。而“flink-...

    一个redis模块,类似于redis hash,但是可以为字段设置过期时间和版本 .zip

    主要特点支持所有 redis hash 命令支持设置字段的过期时间和版本支持高效的字段主动过期(SCAN模式、SORT模式、SLAB模式)和被动过期支持字段过期事件通知(基于pubsub)主动到期扫描模式(默认)不对 TairHash 进行...

    在ASP.NET MVC中使用Redis 的Demo:通过Redis实现用户登陆,并保持登陆状态。

    本示例将详细解释如何利用Redis来实现在ASP.NET MVC应用程序中用户登录功能,并保持用户的登录状态,同时设置过期时间和监控在线用户。 首先,我们需要安装Redis服务器。`Redis-x64-3.2.100.zip`是Redis的一个...

    Python操作Redis之设置key的过期时间实例代码

    在Python中操作Redis数据库时,有时我们需要为存储的数据设置一个过期时间,以确保数据在一段时间后自动清除,释放存储空间。Redis提供了多种方法来设置key的过期时间,这在处理临时或缓存数据时非常有用。本文将...

    python中redis查看剩余过期时间及用正则通配符批量删除key的方法

    redis设置过期时间的两种方式 expire函数设置过期时间为10秒。10秒后,ex1将会失效 expireat设置一个具体的时间,15年9月8日15点19分10秒,过了这个时间,ex2将失效 如果设置过期时间成功会返回True,反之返回False ...

    redis分布式锁带过期时间和方法名代码.zip

    redis分布式锁带方法名和过期时间,如果不传方法名自动获取改方法名做key,使锁的粒度到方法级别,释放锁的时间可以根据自己的需要自定义,默认5s,为了解决超大方法执行时间太长,还没有执行完,锁就被释放掉的问题.

    redis倒计时商品订单状态

    2. **使用`SETEX`命令**:Redis的`SETEX`命令可以同时设置键值对和过期时间,例如`SETEX order:&lt;订单ID&gt; &lt;超时时长(秒)&gt; &lt;状态&gt;`,这样可以方便地创建一个带有超时属性的订单状态记录。 3. **Java Redis客户端**:...

    Redis清理过期key的方法.doc

    volatile-random、volatile-lru、volatile-ttl、volatile-lfu 是从设置了过期时间的 key 中挑选进行淘汰的策略。 LRU 算法 LRU 算法的设计原则是如果一个数据近期没有被访问到,那么之后一段时间都不会被访问到。...

    spring-redis-session 自定义 key 和过期时间

    Spring-Redis-Session 提供了多种方式来设置会话的过期时间,包括通过配置文件、Java 配置类或注解等。其中,通过 @EnableRedisHttpSession 注解可以设置会话的最大不活动间隔时间(maxInactiveIntervalInSeconds)...

    Redis 事务与过期时间详细介绍

    Redis 提供了设置键的过期时间的功能,使得数据在一定时间后自动失效。这对于缓存等临时存储非常有用。以下是设置和检查过期时间的方法: 1. **设置键值**:首先设置一个键值对,例如 `SET art:name hello`。 2. *...

    C#.net Redis分布式锁源码实现

    NX表示只有在键不存在时才设置,而EX则是设置键的过期时间,以防止死锁。 4. 乐观锁策略:由于Redis的单线程模型,可以保证命令的顺序执行,但需要处理并发竞争。使用`INCR`命令可以实现乐观锁,即每次尝试获取锁时...

    redis如何删除过期数据.rar

    在 Redis 中,我们经常为键设置过期时间,以便在特定时间后自动删除数据,释放存储空间。这个压缩包文件“redis如何删除过期数据.rar”可能包含的是关于 Redis 删除过期数据的详细指南。尽管没有具体的标签,但我们...

    springboot的redis方法Utils类文件,含redis增删查方法,设置过期时间等

    操作redis缓存的增删改查Utils文件,存储设置过期时间、删除缓存等

Global site tag (gtag.js) - Google Analytics