美文网首页redis
Redis删除过期数据的策略概要

Redis删除过期数据的策略概要

作者: 白花蛇草可乐 | 来源:发表于2020-02-07 20:52 被阅读0次

Redis 如何在删除过期数据时,兼顾性能和内存容量?

1、正常思路

1-1、定时删除

定时扫描所有键值对,发现过期数据立即删除。

优点:内存空间清理及时,有垃圾数据立即清除,确保了Redis的可用容量。

缺点:浪费CPU算力,对Redis中的所有数据进行全局遍历是一件危险的事情,应该尽力避免。这种做法会影响Redis的性能(吞吐量)。

1-2、懒惰删除

数据过期后不做任何处理,每次被读取时先判断该数据是否过期,过期即删。

优点:性能优异,不影响Redis的正常操作。

缺点:可能会在内存中堆积大量过期数据,占用存储空间(极端情况:有些数据创建以后再也不会访问了),这实际上相当于内存泄漏。

2、Redis的策略

这是一个基于概率的简单策略,假设抽出的样本能够代表整个Redis存储空间。

  1. Redis使用独立的字典存储设定了过期时间(expire)的数据的key,避免在各种操作时触发全局遍历。
  2. Redis 默认每秒进行 10 次过期扫描,从过期字典中随机选取 100 个 key,删除其中已过期的数据。
  3. 如果上述扫描中发现过期 key 的比例超过 25%,则立即再发动一次扫描;直至比例降低到 25% 以下。
  4. 为保证过期扫描不会阻塞正常请求,CPU时间每秒钟最多占用250ms。

以上的每秒扫描次数,以及每秒最多占用的CPU时间,均受到配置文件 redis.conf 中的 hz 参数影响。

相关文章

  • redis过期数据删除策略

    过期数据删除策略  redis的过期数据删除策略使用了惰性删除和定期删除两种策略: 惰性删除发生在redis处理读...

  • 跟着“乐哉”学习redis系列教程-redis的过期策略

    十二、redis的过期策略 定期删除 策略 每100ms随机抽查删除过期数据 缺点 可能残留大量没有抽查过的数据 ...

  • Redis删除过期数据的策略概要

    Redis 如何在删除过期数据时,兼顾性能和内存容量? 1、正常思路 1-1、定时删除 定时扫描所有键值对,发现过...

  • 面试官:Redis 的数据过期了就会马上删除么?

    先说结论,并不会立马删除,Redis 有两种删除过期数据的策略: 定期选取部分数据删除; 惰性删除; 该命令在 R...

  • Redis 过期策略

    redis 过期策略 redis 过期策略是:定期删除+惰性删除。 所谓定期删除,指的是 redis 默认是每隔 ...

  • Redis 对过期数据的处理

    Redis 对过期数据的处理 在 redis 中,对于已经过期的数据,Redis 采用两种策略来处理这些数据,分别...

  • Redis学习之路(12)- 杂记

    Redis-过期删除策略 Redis-删除策略: 1、定时删除:对内存友好, 但是占用cpu 2、惰性删除:对cp...

  • redis数据淘汰机制

    redis的过期策略 redis有两种过期策略,定期删除和惰性删除 定期删除:redis每个100ms随机抽取一些...

  • Redis删除策略和逐出策略

    本文知识点过期数据概念数据删除策略逐出算法 过期数据 先来看三个key值,分别为sex、name、age。 这三个...

  • Redis几种常见问题

    1.Redis的过期策略以及内存淘汰机制 Redis采用的是定期删除+惰性删除策略+内存淘汰机制。 定期删除,Re...

网友评论

    本文标题:Redis删除过期数据的策略概要

    本文链接:https://www.haomeiwen.com/subject/dkvvxhtx.html