写在前面的话:读书破万卷,编码如有神
--------------------------------------------------------------------
1、Redis处理过期key机制
  当client主动访问key的时,会先对key进行超时判断,过时的key会立即删除;另外redis会在后台,每秒10次的执行如下操作:随机选取100个key校验是否过期,如果有25个以上的key过期了,立刻额外随机选取下100个key。也就是说,如果过期的key不多,redis最多每秒回收200条左右,如果有超过25%的key过期了,它就会做得更多,这样即使从不被访问的数据,过期了也会被删除掉。
--------------------------------------------------------------------
2、处理过期keys的命令
2.1、expire : 设置过期时间。格式是:expire key值 秒数
2.2、expireat : 设置过期时间,格式是:expireat key值 到期的时间戳
2.3、ttl : 查看还有多少秒过期,格式是:ttl key值, -1表示永不过期,-2表示已经过期
2.4、persist : 设置成永不过期,格式是:persist key值 删除key的过期设置;另外使用set或者getset命令为键赋值的时候,也会清除键的过期时间。
2.5、pttl:查看还有多少毫秒过期,格式是:pttl key值
2.6、pexpire : 设置过期时间,格式是:pexpire key值 毫秒数
2.7、pexpireat : 设置过期时间,格式是:pexpireat key值 到期的时间戳
java代码如下:
 import redis.clients.jedis.Jedis;

 /**
* 处理过期keys的命令
*/
public class KeyExpireOperation {
public static void main(String[] args) {
Jedis jedis = new Jedis("127.0.0.1",6379);
/**
* 示例1: expire : 设置过期时间。格式是:expire key值 秒数
*/
Long expire = jedis.expire("k1", 6);
System.out.println("expire = " + expire); /**
* 示例2: expireat : 设置过期时间,格式是:expireat key值 到期的时间戳
*/
Long expireAt = jedis.expireAt("k1", System.currentTimeMillis() + 100);
System.out.println("expireAt = " + expireAt); /**
* 示例3:ttl : 查看还有多少秒过期,格式是:ttl key值, -1表示永不过期,-2表示已经过期
*/
Long ttl = jedis.ttl("k1");
System.out.println("ttl = " + ttl); /**
* 示例4:persist : 设置成永不过期,格式是:persist key值 删除key的过期设置;另外使用set或者getset命令为键赋值的时候,也会清除键的过期时间。
*/
Long persist = jedis.persist("k1");
System.out.println("persist = " + persist); /**
* 示例5:pttl:查看还有多少毫秒过期,格式是:pttl key值
*/
Long pttl = jedis.pttl("k1");
System.out.println("pttl = " + pttl); /**
* 已经不推荐使用了
* 示例6:pexpire : 设置过期时间,格式是:pexpire key值 毫秒数
*/
Long pexpire = jedis.pexpire("k1", 1000); /**
* 示例7:pexpireat : 设置过期时间,格式是:pexpireat key值 到期的时间戳
*/
Long pexpireAt = jedis.pexpireAt("k1", System.currentTimeMillis());
System.out.println("pexpireAt = " + pexpireAt);
}
}

9、Redis处理过期keys的机制的更多相关文章

  1. redis 的过期策略都有哪些?内存淘汰机制都有哪些?

    面试题 redis 的过期策略都有哪些?内存淘汰机制都有哪些?手写一下 LRU 代码实现? 面试官心理分析 如果你连这个问题都不知道,上来就懵了,回答不出来,那线上你写代码的时候,想当然的认为写进 r ...

  2. 4.redis 的过期策略都有哪些?内存淘汰机制都有哪些?手写一下 LRU 代码实现?

    作者:中华石杉 面试题 redis 的过期策略都有哪些?内存淘汰机制都有哪些?手写一下 LRU 代码实现? 面试官心理分析 如果你连这个问题都不知道,上来就懵了,回答不出来,那线上你写代码的时候,想当 ...

  3. redis的过期策略都有哪些?内存淘汰机制都有哪些?手写一下LRU代码实现?

    redis的过期策略都有哪些? 设置过期时间: set key 的时候,使用expire time,就是过期时间.指定这个key比如说只能存活一个小时?10分钟?指定缓存到期就会失效. redis的过 ...

  4. 关于redis的几件小事(四)redis的过期策略以及内存淘汰机制

    1.数据为什么会过期? 首先,要明白redis是用来做数据缓存的,不是用来做数据存储的(当然也可以当数据库用),所以数据时候过期的,过期的数据就不见了,过期主要有两种情况, ①在设置缓存数据时制定了过 ...

  5. Redis系列之----Redis的过期设置及淘汰策略

    Redis的过期时间机制和内存淘汰策略    Redis的数据是存储在内存中的,而服务器的内存大小是有限制的,除非宕机,否则这些数据会一直存在,对于一些不再使用的key,也应当进行删除,否则会浪费内存 ...

  6. 一文详解Redis键过期策略

    摘要:Redis采用的过期策略:惰性删除+定期删除. 本文分享自华为云社区<Redis键过期策略详解>,作者:JavaEdge. 1 设置带过期时间的 key # 时间复杂度:O(1),最 ...

  7. 关于Redis数据过期策略

    1.Redis中key的的过期时间 通过EXPIRE key seconds命令来设置数据的过期时间.返回1表明设置成功,返回0表明key不存在或者不能成功设置过期时间.在key上设置了过期时间后ke ...

  8. Redis Cluster架构和设计机制简单介绍

    之前另一篇文章也介绍了 Redis Cluster (link,在文章的后半部分) 今天看到这一篇,简单说一下(http://hot66hot.iteye.com/blog/2050676) 作者的目 ...

  9. Redis数据过期策略

    1.Redis中key的的过期时间 通过EXPIRE key seconds命令来设置数据的过期时间.返回1表明设置成功,返回0表明key不存在或者不能成功设置过期时间.在key上设置了过期时间后ke ...

随机推荐

  1. bzoj千题计划237:bzoj1492: [NOI2007]货币兑换Cash

    http://www.lydsy.com/JudgeOnline/problem.php?id=1492 dp[i] 表示 第i天卖完的最大收益 朴素的dp: 枚举从哪一天买来的在第i天卖掉,或者是不 ...

  2. HDU 2509 基础Anti-SG NIM

    如果我们规定当局面中所有的单一游戏的SG值为0时,游戏结束,则先手必胜当且仅当:(1)游戏的SG!=0 && 存在单一游戏的SG>1:(2)游戏的SG==0  && ...

  3. 《Linux命令行与shell脚本编程大全》第十一章 构建基本脚本

    11.1使用多个命令 $date;who   //  命令列表,加入分号就可以,这样会依次执行.参见5.2.1节 注意区分$(date;who),这个是进程列表,会生成一个子shell来执行 Shel ...

  4. html5 canvas 径向渐变

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. react componentWillReceiveProps 使用注意

    componentWillReceiveProps(nextProps) 请务必使用 nextProps  不要使用 this.props 1个小时的教训...

  6. linux中使用corntab和shell脚本自动备份nginx日志,按天备份

    编写shell脚本,实现nginx日志每天自动备份到指定文件夹! 需要的命令mv , corntab -e(定时任务),shell脚本 这里先说一下corntab: https://www.cnblo ...

  7. python实现两个经纬度点之间的距离和方位角

    from:http://blog.csdn.net/zhuqiuhui/article/details/53180395 1.  求两个经纬点的方位角,P0(latA, lonA), P1(latB, ...

  8. imperva—waf 敏感字段显现

    imperva WAF中看到的日志内容信息有些都是敏感的  比如登录登出的信息 如何调整敏感信息的现实方式,并可以自定义敏感字段? 这里添加字段就可以了 这样就将******转变为明文了

  9. nginx安装报错:configure: error: the HTTP rewrite module requires the PCRE library

    参考:http://blog.51cto.com/williamx/958398 需要安装pcre-devel与openssl-devel yum -y install pcre-devel open ...

  10. 小白学习安全测试(三)——扫描工具-Nikto使用

    扫描工具-Nikto #基于WEB的扫描工具,基本都支持两种扫描模式.代理截断模式,主动扫描模式 手动扫描:作为用户操作发现页面存在的问题,但可能会存在遗漏 自动扫描:基于字典,提高速度,但存在误报和 ...