Redis查询,设置超时时间
2017-03-31 16:36
387 查看
1、定义
Redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
2、ttl 命令
Redis TTL 命令以秒为单位返回 key 的剩余过期时间。
可用版本:>= 1.0.0
返回值的意义
3、expire命令
memcached 和 redis 的set命令都有expire参数,可以设置key的过期时间。但是redis是一个可以对数据持久化的key-value database,它的key过期策略还是和memcached有所不同的。
redis通过expire命令来设置key的过期时间。语法如下:
注意:在小于2.1.3的redis版本里,只能对key设置一次expire。redis2.1.3和之后的版本里,可以多次对key使用expire命令,更新key的expire time。
redis术语里面,把设置了expire time的key 叫做:volatile keys。 意思就是不稳定的key。
如果对key使用set或del命令,那么也会移除expire time。尤其是set命令,这个在编写程序的时候需要注意一下。
redis2.1.3之前的老版本里,如果对volatile keys 做相关写入操作(LPUSH,LSET),和其他一些触发修改value的操作时,redis会删除 该key。 也就是说 :
redis2.1.3之后的版本里面没有这个约束,可以任意修改。
redis对过期键采用了lazy expiration:在访问key的时候判定key是否过期,如果过期,则进行过期处理。其次,每秒对volatile keys 进行抽样测试,如果有过期键,那么对所有过期key进行处理。
Redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
2、ttl 命令
Redis TTL 命令以秒为单位返回 key 的剩余过期时间。
TTL KEY_NAME
可用版本:>= 1.0.0
返回值的意义
-2:key不存在; -1:存在,但未设置剩余生存时间; 否则,以秒为单位返回key的生存时间。
3、expire命令
memcached 和 redis 的set命令都有expire参数,可以设置key的过期时间。但是redis是一个可以对数据持久化的key-value database,它的key过期策略还是和memcached有所不同的。
redis通过expire命令来设置key的过期时间。语法如下:
redis.expire(key, expiration)
注意:在小于2.1.3的redis版本里,只能对key设置一次expire。redis2.1.3和之后的版本里,可以多次对key使用expire命令,更新key的expire time。
redis术语里面,把设置了expire time的key 叫做:volatile keys。 意思就是不稳定的key。
如果对key使用set或del命令,那么也会移除expire time。尤其是set命令,这个在编写程序的时候需要注意一下。
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;
redis对过期键采用了lazy expiration:在访问key的时候判定key是否过期,如果过期,则进行过期处理。其次,每秒对volatile keys 进行抽样测试,如果有过期键,那么对所有过期key进行处理。
相关文章推荐
- redis 下载启动,设置、查询超时时间
- redis 下载启动,设置、查询超时时间
- redis 下载启动,设置、查询超时时间
- python运用redis,存储键值,设置超时时间
- 关于redis使用set时设置超时时间的问题
- redis设置value的超时时间
- WebLogic如何设置session超时时间
- 设置MySQL 超时等待时间
- 为ServerXMLHTTP对象的HTTP请求设置超时时间
- 为ServerXMLHTTP对象的HTTP请求设置超时时间
- 设置revc()的等待超时时间
- 如何设置WEB SERVICE超时时间
- net-snmp 一些系统mib节点值的存储位置 和 超时时间的设置
- 悬而未决:如何在PHP中设置session超时时间
- ASP.NET连接超时时间设置
- session超时时间设置方法
- 给XMLHttpRequest设置超时时间
- 设置session超时时间的两种方法
- SQL Server设置最大超时时间
- 常用时间范围的查询的范围设置