【吊打面试官系列】Redis篇 -Redis 回收进程如何工作的?

大家好,我是锋哥。今天分享关于 【Redis 回收进程如何工作的?】面试题,希望对大家有帮助;

​Redis 回收进程如何工作的?

一个客户端运行了新的命令,添加了新的数据。Redi 检查内存使用情况,如 果大于 maxmemory 的限制, 则根据设定好的策略进行回收。一个新的命令被执行,等等。所以我们不断地穿越内存限制的边界,通过不断达到边界然后不断地回收回到边界以下。如果一个命令的结果导致大量内存被使用(例如很大的集合的交集保存到一个新的键),不用多久内存限制就会被这个内存使用量超越。

Redis的内存回收进程是一个单独的线程或进程,被称为“内存回收进程”(memory reclaiming thread/process)。这个进程的主要工作包括:

  1. 过期键的检测:Redis首先在时间上进行判断,对那些已过期但是尚未被删除的 keys 进行标记,这样它们就可以在之后被立即释放并回收所占用的内存。

  2. LRU算法的运用:Redis内存回收进程还检查那些没有被过期,但仍然占用大量内存的键。如果所选键比快满了,Redis 就选择其中最早要删除的几个键,并释放它们所占用的空间。

  3. 手动回收内存:除了定期回收外,Redis 还支持手动释放 key VALUE 占用内存的方法,例如通过向 Redis 发送一个 flushall 命令或使用“shutdown”命令断开连接的方式来清除所有数据。

  4. 内存分配策略:Redis使用内存池(memory pool)来分配空间,并且它针对不同对象的大小,提供了不同的内存分配策略。

  5. 避免内存溢出:如果内存占满,Redis服务器将停止工作,同时遇到读写请求将返回错误信息OOM(Out of Memory)。为了预防这种情况,Redis 为内存回收提供了三个命令:基于过期时间取消 key、基于 LRU (Least Recently Used)算法淘汰长时间未使用的键/值对、数据库压缩。

总结来说,Redis 的内存管理主要依靠两个进程:内存回收进程和AOF持久化进程(如果打开)。所有键值都保存在内存中,如果内存满了,Redis将停止工作,同时遇到读写请求将返回错误信息OOM(OutOfMemory)。

最近更新

  1. TCP协议是安全的吗?

    2024-03-31 10:32:03       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-31 10:32:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-31 10:32:03       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-31 10:32:03       20 阅读

热门阅读

  1. 有线电视网 题解

    2024-03-31 10:32:03       14 阅读
  2. 蓝桥杯算法题-发现环

    2024-03-31 10:32:03       17 阅读
  3. Unity WebRequest 变得简单

    2024-03-31 10:32:03       15 阅读
  4. Nginx入门--初识Nginx的架构

    2024-03-31 10:32:03       16 阅读
  5. 1688中国站按关键字搜索工厂数据 API

    2024-03-31 10:32:03       14 阅读
  6. B/S架构

    B/S架构

    2024-03-31 10:32:03      16 阅读
  7. 把CIFAR-10数据集分类保存成图片

    2024-03-31 10:32:03       15 阅读
  8. 如何系统地学习Python(四)标准库(二)

    2024-03-31 10:32:03       13 阅读
  9. 如何提高账号安全——密码的秘密

    2024-03-31 10:32:03       13 阅读
  10. 汽车电子行业知识:汽车电子领域包含哪些技术

    2024-03-31 10:32:03       15 阅读
  11. Centos 7 安装 Node.js v16.13.1

    2024-03-31 10:32:03       17 阅读
  12. 深入了解Vue中slot的应用

    2024-03-31 10:32:03       14 阅读
  13. kvm虚拟机迁移--来自gpt

    2024-03-31 10:32:03       11 阅读
  14. 工作总结5

    2024-03-31 10:32:03       12 阅读