redis丢key和bigkey的问题

丢key (缓存污染
  • 现象:现场老是出现redis-key丢失的情况,昨天的key今天就没了
  • 排查角度:
    • 1、key是否设置过期时间
    • 2、检查key的删除逻辑
    • 3、查看redis中已使用的内存是否接近maxmemory,导致触发了内存淘汰策略
  • 如果是第三种情况,则根据业务场景需要设置一下config
    • 修改redis-config
      • 修改maxmemory
      • 修改maxmemory-policy 由 allkeys-lru改为 volatile-lru
    • 查看哪些key占用了比较多的内存(bigkeys排查),并查看是否有设置超时时间
bigkeys

bigkeys:hash/set/zset中元素数量很多,string存储的数据很大

  • 危害:
    • 1、阻塞、redis是单线程的,对bigkeys的操作会导致阻塞其他命令,导致大批量redis操作超时报错等一系列问题
    • 2、过期/删除时会阻塞,如果是redis4.0以后的版本,可以用异步删除解决(lazy-free/unlink)
    • 3、内存分布不均匀,比如在redis-cluster中会造成节点内存的使用不均匀,增大某单个实例的处理压力
  • 排查bigkeys的方法 :
rdb --command json dump.rdb
  • 解决方法:
    • 优化存储方案
      • bigkey拆分,分片存储
      • 存到数据库
      • 设置过期时间等
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值