Skip to content

内存管理 ​

内存统计 ​

查看内存 ​

redis
INFO memory
MEMORY STATS
MEMORY USAGE key

关键指标 ​

used_memory: 实际使用内存
used_memory_rss: 物理内存
mem_fragmentation_ratio: 碎片率

内存淘汰策略 ​

配置方式 ​

redis
maxmemory 2gb
maxmemory-policy allkeys-lru

策略列表 ​

策略说明
noeviction不淘汰,返回错误
volatile-lruLRU淘汰有TTL的键
allkeys-lruLRU淘汰所有键
volatile-lfuLFU淘汰有TTL的键
allkeys-lfuLFU淘汰所有键
volatile-random随机淘汰有TTL的键
allkeys-random随机淘汰所有键
volatile-ttl淘汰TTL最小的

内存优化 ​

1. 精简key ​

# 不好
user:1000000001:profile:name
# 好
u:1:profile:name

2. 合理使用类型 ​

  • 小整数用整数编码
  • 短字符串用embstr

3. 压缩数据 ​

redis
SET key ZIPSTRING value  # 使用压缩

面试考点 ​

Q: 内存碎片怎么产生的? ​

  • 内存分配/释放产生碎片
  • bigkey导致碎片
  • 解决:重启或memory purge

Q: 如何排查bigkey? ​

redis
-- Redis 4.0+
redis-cli --bigkeys
-- 或
SCAN + MEMORY USAGE

最后更新: