Redis 是一个基于内存的键值数据库, 其内存管理是非常重要的. 本文内存管理的内容包括: 过期键的懒性删除和过期删除以及内存溢出控制策略.
最大内存限制
Redis 使用 maxmemory 参数限制最大可用内存, 默认值为 0, 表示无限制. 限制内存的目的主要 有:
用于缓存场景, 当超出内存上限 maxmemory 时使用 LRU 等删除策略释放空间.
防止所用内存超过服务器物理内存. 因为 Redis 默认情况下是会尽可能多使用服务器的内存, 可能会出现服务器内存不足, 导致 Redis 进程被杀死.
maxmemory 限制的是 Redis 实际使用的内存量, 也就是 used_memory 统计项对应的内存. 由于内存碎片率的存在, 实际消耗的内存 可能会比 maxmemory 设置的更大, 实际使用时要小心这部分内存溢出. 具体 Redis 内存监控的内容请查看一文了解
来源: https://yq.aliyun.com/articles/723360