设置过期时间

redis对于存储的键值可以设置过期时间,对于过期了的键值,redis会自动删除。

>
OK
> get price
"
> expire price
(integer)
> get price
"
> get price
(nil)

上述代码对price设置了5秒的过期时间,5秒内能查出数据,5秒后则返回null

需要说明的是,expire设置的时间单位是秒,如果需要更加精确的话,需要通过pexpire来设置,单位是毫秒,即expire price 1等价于pexpire price 1000

查询键值还有多久过期  命令ttl/pttl

对于未设置过期时间的键值,返回-1;对于不存在的键值,返回-2

>
OK
> ttl price
(integer) -
> expire price
(integer)
> ttl price
(integer) 

取消过期时间设置

使用persist取消过期时间设置,使用set重置键值的话也会取消过期时间设置

>
OK
> expire price
(integer)
> ttl price
(integer)
> persist price
(integer)
> ttl price
(integer) -
> 

缓存

redis常用作缓存系统,利用的就是过期时间这个功能。在实际使用中,若大量使用缓存键且缓存时间设置的过长,则会导致Redis占满内存;若过期时间设置的太短,则会导致内存浪费且缓存命中率低。目前比较合适的解决方案是设置redis的最大使用内存maxmemory和淘汰缓存键的规则(依据maxmemory-policy),当内存满时由redis自动删除键值。

Redis支持的淘汰键的规则

规则 说明
volatile-lru 使用LRU算法删除一个键(只对设置了过期时间的键)
allkeys-lru 使用LRU算法删除一个键
volatile-random 随机删除一个键(只对设置了过期时间的键)
allkeys-random 随机删除一个键
volatile-ttl 删除过期时间最近的键
noeviction 不删除键,只返回错误

redis 过期时间与缓存的更多相关文章

  1. Redis -- 过期时间 和 缓存 例子

    1.设置 key的生存时间,过期自动删除 exprire key  seconds    设置过期时间 秒数 ttl key   查询剩余时间 如果 设置了过期时间.对key进行 set 操作,会清除 ...

  2. redis学习(五) redis过期时间

    redis过期时间 1.redis过期时间介绍 有时候我们并不希望redis的key一直存在.例如缓存,验证码等数据,我们希望它们能在一定时间内自动的被销毁.redis提供了一些命令,能够让我们对ke ...

  3. Redis 过期时间

    http://www.redis.cn/commands/expire.html 附录: Redis 过期时间 Keys的过期时间 通常Redis keys创建时没有设置相关过期时间.他们会一直存在, ...

  4. localstorage实现带过期时间的缓存功能

    前言 一般可以使用cookie,localstorage,sessionStorage来实现浏览器端的数据缓存,减少对服务器的请求. 1.cookie数据存放在本地硬盘中,只要在过期时间之前,都是有效 ...

  5. 老司机带你玩转面试(2):Redis 过期策略以及缓存雪崩、击穿、穿透

    前文回顾 建议前一篇文章没看过的同学先看下前面的文章: 「老司机带你玩转面试(1):缓存中间件 Redis 基础知识以及数据持久化」 过期策略 Redis 的过期策略都有哪些? 在聊这个问题之前,一定 ...

  6. Redis过期时间

    上次开发用了redis后效果不错,后来在进阶的开发中查询到,如果redis一直不释放也会占用内存,于是就想着给redis加上个过期时间. 具体操作很简单,只要在设置redis的时候加上exp就可以了, ...

  7. IIS使用十大原则,(IIS过期时间,IIS缓存设置) 【转载】

    1. 自定义错误页虽然自定义错误页很简单,但只有少数管理员有效地利用了它.管理员可以在MMC中将HTTP错误信息映像到服务器上的绝对URL或是某个文件,更为详细的信息可以在这里找到.如果你嫌这太麻烦, ...

  8. python设置redis过期时间

    import time import redis if __name__ == "__main__": try: conn=redis.StrictRedis(host='192. ...

  9. java实现带过期时间的缓存

    private static ScheduledExecutorService swapExpiredPool = new ScheduledThreadPoolExecutor(10); priva ...

随机推荐

  1. [转]Ubuntu python-config

    转自:http://manpages.ubuntu.com/manpages/precise/man1/python-config.1.html recise (1) python-config.1. ...

  2. Spring Boot基础知识

    Spring Boot 是微服务中最好的 Java 框架. 我们建议你能够成为一名 Spring Boot 的专家. 问题一 Spring Boot.Spring MVC 和 Spring 有什么区别 ...

  3. MySQL+MyBatis下批量修改数据的问题

    今天处理数据批量的更新,场景是这样子的,web站管理的字典功能,需要添加一个记录的整体描述,以及详细内容的描述.一个字典整体概述只有一组信息,但是其详细内容,会有很多项,不确定. 这个场景,在关系型数 ...

  4. sort a given string

    my solution: function order(words){ var splitToArr = words.split(' '), len = splitToArr.length, newA ...

  5. Django 链接mysql

    第一步:settings.py DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'testdjango ...

  6. 寻找数组中第K大的数

    给定一个数组A,要求找到数组A中第K大的数字.对于这个问题,解决方案有不少,此处我只给出三种: 方法1: 对数组A进行排序,然后遍历一遍就可以找到第K大的数字.该方法的时间复杂度为O(N*logN) ...

  7. MFC程序显示控制台输出

    有的时候,我们用c写的一些东西,可能需要MFC作为UI输入参数进行测试,但是程序里有大量的printf操作,这就需要MFC程序启动的时候同时打开 一个控制台,用于标准输出 查询网络,大致方法有以下两种 ...

  8. JS之滚动条效果2

    在前面一篇说的是滚动条效果,本篇继续在前面的基础上面针对滚动条进行操作.本次要实现的效果如下:拖动滚动条左右移动时,上面的图片内容也相对外层盒子做相对移动. 下面针对要实现的效果进行分析:首先是页面基 ...

  9. Web jsp开发学习——Session使用

    先展示效果:              导包:    在servlet的doget里创建session      在head里显示session     接下来进行注销的命令    点击注销链接到这个 ...

  10. R语言 实验三 数据探索和预处理

    计算缺失值个数 计算缺失率   简单统计量:计算最值     箱形图分析   分布分析:画出频率直方图 统计量分析:对于连续属性值,求出均值以及标准差         缺失值处理:删除法     去除 ...