redis 过期原理是什么?

在redis中设置一个键值对 , 1000秒后过期

set test 'nnn'

expire test 1000

之后,将系统时间修改为明天的此时,这个时候通过以下命令:

ttl test
-2

得到的结果是-2。

请问: 修改系统时间对redis缓存的影响是什么?

阅读 4.8k
4 个回答

redis 触发过期条件,有2种:

  • 内部根据系统时间定时查询已过期的 key
  • 主动查询这个 key 时会检测是否已过期

redis过期时间,是存入当前时间+过期时间结算后的时间戳,也就是截止时间。所以系统时间变更后,会影响redis的过期时间。

 //client.set设置存留的时间24小时,client.set是个回调函数
 client.set(args, data, 'EX', 24 * 60 * 60, (error, param) => {
  });

 client.del(args, args);//client.del过期删除

redis官方文档都有的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题