【redis内存(一)】回收机制(被动删除+主动删除)

【redis内存(一)】回收机制(被动删除+主动删除)
主动删除(定时任务删除)
被动删除(惰性删除)

知识点梳理:
【redis内存(一)】回收机制(被动删除+主动删除)

被动删除(惰性):

一些expire keys
当客户端尝试访问它时,key会被发现并主动的删除,返回空。这样redis可以节省CPU成本,不需要单独再护TTl链表来处理过期的keys。

定时任务删除:

只有被动删除是不够的,因为有些过期的keys,可能永远不会被访问。 这样可能导致内存泄漏。
所以增加定时随机测试设置keys的过期时间(做被动删除的补充)。

具体就是Redis每秒10次做的事情:

  1. 测试随机的20个keys进行相关过期检测。
  2. 删除所有已经过期的keys。
  3. 如果有多于25%的keys过期,重复步奏1.

参考:
en: https://redis.io/commands/expire
cn: http://www.redis.cn/commands/expire.html