线上问题:redis 内存使用率 95%,排查bigkey
一、问题现象
某一天,突然发现用户没权限,查看redis的某个用户key被清理了,再查看redis内存使用率,如图
二、排查是哪个key占用内存大
root@redis-release-master-0:/opt/bitnami/redis/bin# redis-cli -h 127.0.0.1 -a password --bigkeys Warning: Using a password with '-a' option on the command line interface may not be safe. # Scanning the entire keyspace to find biggest keys as well as # average sizes per key type. You can use -i 0.1 to sleep 0.1 sec # per 100 SCAN commands (not usually needed). [00.00%] Biggest list found so far 'uname_to_access:superuser:13424346650' with 1 items [00.00%] Biggest string found so far 'auth:ywHRuX_lWAxXHl9tdNB+MpHmsl3gAY250ssOiYgv6PDCb/ofUo=' with 51570 bytes [00.00%] Biggest string found so far 'access:eZqJpv_GhvkrwdIoSF38TzUsHRS/Ehxg0BLC7XVWhiIpevmhVQ=' with 51934 bytes [00.12%] Biggest string found so far 'access:iywFsE_wN8d5gqHX0dO2qgXiEPuroaFUhC5dOoJfqmc9xcuuTY=' with 51936 bytes [00.26%] Biggest string found so far 'access:LZmIZp_lAcs9g69dhzOTViUmd6Qlaxtqqkn1lwyx6IMMHco14U=' with 52824 bytes [01.03%] Biggest list found so far 'uname_to_access:superuser:15897829202' with 2 items [01.54%] Biggest string found so far 'AIaZdE_w9rrkIzssV91fmYrL/ih2RZ2UVECyWWDvmxNeQduVGY=' with 64949 bytes [04.38%] Biggest string found so far 'BfGnlB_V9dGHqQhXVQW6uACiRw9pCraL3hmOF+gBHnnJ4dOFnM=' with 68979 bytes [07.23%] Biggest list found so far 'uname_to_access:superuser:13669856178' with 3 items [08.26%] Biggest list found so far 'uname_to_access:superuser:13537578165' with 4 items [12.69%] Biggest string found so far 'access:bpFISU_5hX8dM6Xapmwgy0RvOvOdRTnKvjIJtGfQfAt2vD+480=' with 81687 bytes [13.86%] Biggest list found so far 'uname_to_access:superuser:yunwei01' with 20 items [17.31%] Biggest zset found so far 'ifaascloud_cmp_monitor_run_rank_middleware' with 8 members [18.78%] Biggest zset found so far 'ifaascloud_cmp_monitor_run_rank_platform' with 12 members [30.13%] Biggest list found so far 'uname_to_access:superuser:rhgenetech' with 1149 items [44.41%] Biggest list found so far 'client_id_to_access:superuser' with 11316 items [66.43%] Biggest hash found so far 'ifaascloud_cmp_monitor_resource_overview' with 3 fields [69.27%] Biggest list found so far 'uname_to_access:superuser:ub' with 17849 items [82.58%] Biggest string found so far 'ifaas-hotel-robot-platform:buildingData' with 817326 bytes [87.52%] Biggest hash found so far 'ifaascloud_cmp_alert_prometheus_alertrules' with 101 fields -------- summary ------- Sampled 6107 keys in the keyspace! Total key length in bytes is 277942 (avg len 45.51) Biggest string found 'ifaas-hotel-robot-platform:buildingData' has 817326 bytes Biggest list found 'uname_to_access:superuser:ubtech' has 17849 items Biggest hash found 'ifaascloud_cmp_alert_prometheus_alertrules' has 101 fields Biggest zset found 'ifaascloud_cmp_monitor_run_rank_platform' has 12 members 5114 strings with 206443381 bytes (83.74% of keys, avg size 40368.28) 988 lists with 31845 items (16.18% of keys, avg size 32.23) 0 sets with 0 members (00.00% of keys, avg size 0.00) 2 hashs with 104 fields (00.03% of keys, avg size 52.00) 3 zsets with 26 members (00.05% of keys, avg size 8.67) 0 streams with 0 entries (00.00% of keys, avg size 0.00) root@redis-release-master-0:/opt/bitnami/redis/bin#
上图红色字体,发现这个list 有17849 items,每个item有50k,那就占用了900M多,加上另一个 11316 items 共占用1.4G内存。
解决方案:查看代码,排查uname_to_access:superuser:ub的使用方式即可
技术参考:https://blog.csdn.net/weixin_36642528/article/details/111238496
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构