Redis 从入门到精通(十四):内存管理与淘汰策略

系列导读:本篇将深入讲解 Redis 内存管理和淘汰策略,优化内存使用。


文章目录

    • 一、内存管理
      • [1.1 查看内存使用](#1.1 查看内存使用)
      • [1.2 内存配置](#1.2 内存配置)
    • 二、淘汰策略
      • [2.1 策略列表](#2.1 策略列表)
      • [2.2 策略选择](#2.2 策略选择)
    • 三、内存优化
      • [3.1 数据结构优化](#3.1 数据结构优化)
      • [3.2 编码优化](#3.2 编码优化)
      • [3.3 清理内存](#3.3 清理内存)
    • 总结

一、内存管理

1.1 查看内存使用

bash 复制代码
# 查看内存信息
INFO memory

# 关键指标
used_memory: 已使用内存
used_memory_peak: 内存峰值
used_memory_rss: 系统分配内存
mem_fragmentation_ratio: 内存碎片率

1.2 内存配置

conf 复制代码
# redis.conf

# 最大内存限制
maxmemory 2gb

# 内存淘汰策略
maxmemory-policy allkeys-lru

二、淘汰策略

2.1 策略列表

策略 说明
noeviction 不淘汰,内存满时返回错误
allkeys-lru 淘汰最久未使用的key
volatile-lru 淘汰设置了过期时间且最久未使用的key
allkeys-lfu 淘汰使用频率最低的key
volatile-lfu 淘汰设置了过期时间且使用频率最低的key
allkeys-random 随机淘汰key
volatile-random 随机淘汰设置了过期时间的key
volatile-ttl 淘汰即将过期的key

2.2 策略选择

复制代码
缓存场景 → allkeys-lru
热点数据 → allkeys-lfu
有过期时间 → volatile-lru
不能丢数据 → noeviction

三、内存优化

3.1 数据结构优化

bash 复制代码
# 使用Hash替代多个String
# 差:
SET user:1001:name "张三"
SET user:1001:age "25"

# 好:
HMSET user:1001 name "张三" age 25

3.2 编码优化

conf 复制代码
# redis.conf

# Hash优化
hash-max-ziplist-entries 512
hash-max-ziplist-value 64

# List优化
list-max-ziplist-size -2

# Set优化
set-max-intset-entries 512

# ZSet优化
zset-max-ziplist-entries 128
zset-max-ziplist-value 64

3.3 清理内存

bash 复制代码
# 清空数据库
FLUSHDB    # 当前库
FLUSHALL   # 所有库

# 异步清空
FLUSHDB ASYNC
FLUSHALL ASYNC

总结

本文我们学习了:

内存查看 :INFO memory

淘汰策略 :8种策略选择

内存优化:数据结构、编码优化

下篇预告Redis 从入门到精通(十五):安全配置与性能优化


作者 :刘~浪地球
系列 :Redis 从入门到精通(十四)
更新时间:2026-04-08

相关推荐
IvorySQL35 分钟前
IvorySQL Agent 探索与实践
数据库·人工智能·postgresql·oracle·ivorysql
SelectDB2 小时前
美团数十 PB 规模 Apache Doris 实践:从统一 OLAP 到 AI-Native 数据基座
大数据·数据库·性能优化
Database_Cool_2 小时前
阿里云RDS主从延迟解决方案_只读实例半同步复制最佳实践
数据库·人工智能
KaMeidebaby2 小时前
卡梅德生物技术快报|小 RNA 适配体合成 + 多方法亲和力表征全流程标准化操作手册
前端·网络·数据库·人工智能·算法
卓怡学长3 小时前
w269基于spring boot + vue 候鸟监测数据管理系统
java·数据库·spring boot·spring·intellij-idea
ClouGence3 小时前
MySQL 到 StarRocks 数据迁移同步:同步方案与实践指南
数据库·mysql
行业研究员3 小时前
当数据生产者变成 Agent,数据库底座如何重构?
大数据·数据库·重构
人工智能培训3 小时前
破解数据发展瓶颈 激活数字经济新动能
大数据·数据库·人工智能·深度学习·神经网络·机器学习·生成对抗网络
1234567890@world4 小时前
知识管理 | 数字化 | APQC
大数据·数据库·人工智能
倒流时光三十年4 小时前
PostgreSQL JSONB 操作符详解
大数据·数据库·postgresql