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进行处理。
end------------------
分享到:
相关推荐
通过这些命令,我们可以对Redis数据库中的Key进行管理,包括查找、删除、移动、重命名以及设置过期时间等操作,从而更好地利用Redis的数据存储能力。了解和熟练掌握这些命令对于使用Redis至关重要。
EXPIRE设置某个key的过期时间(秒),(EXPIRE bruce 1000:设置bruce这个key1000秒后系统自动删除)注意:如果在还没有过期的时候,对值进行了改变,那么那个值会被清除。 TTL查找某个key还有多长时间过期,返回时间秒 ...
* 作用:为给定key 设置生存时间,当key 过期时(生存时间为0 ),它会被自动删除 * 可用版本:>= 1.0.0 * 时间复杂度:O(1) * 返回值:设置成功返回1 KEYS指令: * 语法:KEYS pattern * 作用:查找所有符合给定...
* EXPIRE key seconds:设置键的过期时间 * TTL key:获取键的剩余生存时间 * TYPE key:获取键的类型 Redis 配置文件 Redis 的配置文件是文本文件,通常命名为 redis.conf。配置文件中可以设置 Redis 的各种参数...
7. **EXPIRE key seconds** 和 **EXPIREAT key timestamp**:分别为键设置过期时间,单位为秒和绝对时间(Unix时间戳)。成功设置返回1,否则返回0。 8. **TTL key**:查询键的剩余生存时间,返回秒数,若Key不存在...
- `expire key 60`:设置键`key`的过期时间为60秒。 - `ttl key`:查看键`key`的剩余过期时间。 5. **判断键是否存在**: - `exists key`:判断键`key`是否存在。 6. **删除键**: - `del key1 key2 keyN`:...
在 Java 开发中,使用 Jedis(Java Redis 客户端)来操作 Redis 的键过期时间,可以调用相应的方法,例如 `setEx()`、`psetEx()`、`expire()`、`pexpire()`、`expireAt()` 和 `pexpireAt()`。 总的来说,Redis 的键...
同时,Redis提供了`expire`命令,可以设置键的过期时间,以自动清理不再需要的数据。 总结来说,Redis作为一款强大的内存数据存储系统,凭借其丰富的数据结构、高效的操作性能、持久化机制、事务支持以及高可用性...
### Redis入门实践知识点详解 #### 一、Redis简介与安装 **Redis** 是一款开源的高级键值存储系统。由于其支持多种数据结构,如字符串(Strings)、哈希(Hashes)、列表(Lists)、集合(Sets)以及有序集合...
- `EXPIRE key seconds`:设置键的过期时间。 - `TTL key`:查看键的剩余生存时间。 - `PUSH key value`/`POP key`:在列表两端添加/移除元素。 - `HSET hashkey field value`/`HGET hashkey field`:操作哈希表。 -...
- **EXPIRE key seconds**:为键设置过期时间,单位是秒。 - **TTL key**:查看键的剩余生存时间,单位是秒。 #### 字符串(String)操作 - **SET key value**:为键设置字符串值。 - **GET key**:获取键所关联的...
**Redis2-NGINX-Module 0.15 知识详解** Redis2-NGINX-Module 是一个用于 NGINX Web 服务器的扩展模块,它允许开发者将 NGINX 与 Redis 数据库集成,实现高效的数据缓存和交互。这个版本是 0.15,它提供了一系列...
2. **EXPIRE key seconds**:设置键`key`的过期时间为`seconds`秒后。 - 示例:`EXPIRE user:1 3600` 3. **TTL key**:返回键`key`的剩余生存时间。 - 示例:`TTL user:1` 4. **KEYS pattern**:查找所有符合模式`...
- **EXPIRE key seconds**:为`key`设置生存时间,生存时间结束后`key`会被删除。 - **EXPIREAT key timestamp**:设置`key`过期的UNIX时间戳。 - **TTL key**:返回`key`剩余的生存时间。 - **PERSIST key**:移除`...
- **`EXPIRE key seconds`**: 为 `key` 设置过期时间。 - **`EXPIREAT key timestamp`**: 用时间戳的方式给 `key` 设置过期时间。 - **`PEXPIRE key milliseconds`**: 设置 `key` 的过期时间以毫秒计。 - **`KEYS ...
- `EXPIRE key seconds`:设置键的过期时间。 - `TTL key`:返回键的剩余生存时间。 #### 三、注意事项 - 在实际开发过程中,需要注意Redis与关系型数据库之间的数据同步问题。 - Redis虽然提供了高效的实时数据...
- `EXPIRE key seconds`:为键设置过期时间。 - `TTL key`:查看键的剩余生存时间。 - `TYPE key`:返回键所存储的值的类型。 #### 九、常见问题及面试准备 - **Redis如何处理并发问题?**:Redis采用单线程模型,...
- `EXPIRE`: 为Key设置过期时间。 - `TTL`: 获取Key的剩余过期时间。 - `SELECT`: 选择数据库索引。 - `MOVE`: 将Key从当前数据库移到另一个数据库。 ##### 2.2 Redis的Value Redis支持五种基本的数据类型: ...
此外,`EXPIRE key seconds`和`PEXPIRE key milliseconds`分别设置键的过期时间,`TTL key`和`PTTL key`查看剩余生存时间,`PERSIST key`取消过期。 通过以上介绍,我们可以看到Redis提供的丰富命令和功能,使得它...