使用INFO命令快速查看Redis存储信息:redis-cli INFO memory 可以看到used_memory、used_memory_human等关键指标,帮助监控内存使用情况。结合MEMORY USAGE key命令精确查询单个key的内存占用,实现高效数据管理。
实战技巧1
Redis的SCAN命令是高效遍历键空间的利器,避免了KEYS *的阻塞风险。在脚本中循环SCAN 0 COUNT 1000,直到cursor为0,就能安全地查询所有键信息,而不影响在线服务。
实战技巧2
通过redis-cli --bigkeys选项,直接扫描并报告占用内存最大的键,帮助识别数据膨胀问题。命令:redis-cli --bigkeys | head -10,快速定位热点数据,进行优化清理。
实战技巧3
使用MEMORY STATS命令查看Redis内存分配细节,包括dataset、overhead等,帮助诊断内存碎片。定期运行此命令,结合maxmemory-policy策略,实现自动高效数据蒸发。
实战技巧4
对于Hash数据结构,HSCAN命令支持增量式查询大hash,避免全量加载。示例:HSCAN myhash 0 MATCH * COUNT 100,适合存储用户信息的高效管理。
实战技巧5
结合CONFIG GET *查看所有配置,特别是maxmemory和maxmemory-policy,确保在内存压力下优先淘汰不活跃键,实现持久化存储的高效查询。
实战技巧6
使用redis-cli MONITOR实时监控所有命令,分析查询模式,优化热门key的存储策略,如添加TTL过期时间,防止无限增长。
Q: 如何快速检查Redis总内存使用?
A: 执行INFO memory,查看used_memory_human字段。
Q: SCAN和KEYS有什么区别?
A: SCAN是非阻塞增量迭代,KEYS是阻塞全量扫描,生产环境优先用SCAN。
Q: 怎么找出占用内存最大的key?
A: redis-cli --bigkeys命令会列出top bigkeys。
Q: 设置key过期时间怎么做?
A: SET key value EX 3600 或 EXPIRE key 3600秒。