Redis中有大量未设置过期时间的缓存应该如何处理?
admin
2024-01-30 13:58:20

问题

Redis集群因为开发人员问题,放入过多的没有设备过期时间的缓存,导致Redis内存使用过高。

解决方案

  1. 把过期的KEY找出来,批量删除。
  • 安装Redis-cli (生产环境大部分都是集群,或者云服务,不要在安装Redis的机器上操作),下面是Centos系统操作脚本
    # 安装基础依赖
    yum install -y gcc wget
    # 下载包
    wget http://download.redis.io/redis-stable.tar.gz
    # 解压
    tar xvzf redis-stable.tar.gz
    cd redis-stable
    # 编译
    make redis-cli
    # 
    sudo cp src/redis-cli /usr/local/bin/
    
  • 执行批量删除脚本
     redis-cli -h host -p port -a password  keys "ABC*" |xargs  redis-cli -h host -p port -a password  keys "ABC*" del
    
    -h Redis服务器地址
    -p Redis服务端口
    -a Redis服务密码
    keys 查询key
  1. 业务切换Redis DB到其他逻辑库,把有问题的库的数据全部清除。
flushdb   // 清除当前数据库的所有keys
flushall    // 清除所有数据库的所有keys
  1. 修改程序,设置Key过期时间,并且设置Redis淘汰策略为allkeys-lru,这个需要自己评估一下Redis是否有特殊用法。
    volatile-lru,针对设置了过期时间的key,使用lru算法进行淘汰。
    allkeys-lru,针对所有key使用lru算法进行淘汰。
    volatile-lfu,针对设置了过期时间的key,使用lfu算法进行淘汰。
    allkeys-lfu,针对所有key使用lfu算法进行淘汰。
    volatile-random,从所有设置了过期时间的key中使用随机淘汰的方式进行淘汰。
    allkeys-random,针对所有的key使用随机淘汰机制进行淘汰。
    volatile-ttl,删除生存时间最近的一个键。
    noeviction(默认),不删除键,值返回错误。

相关内容

热门资讯

新质新格局,景芝白酒再次点亮黄... 11月18日,备受瞩目的2025年第六届中国白酒黄淮核心产区高质量发展峰会在淄博举办。本届峰会以“新...
今日播出|丝路陕茶 千年留香 播出时间:农林卫视《农村大市场》11月19日22:05 丝路陕茶 千年留香 陕西是我国最早种茶、出产...
纠结有什么好吃的零食品牌推荐?... 在快节奏的现代生活中,零食早已超越了单纯的充饥角色,转而成为我们慰藉味蕾、补充能量、甚至分享快乐的重...
吃巧克力能缓解甲状腺相关疲劳? 一、甲状腺相关疲劳的核心成因 要判断巧克力能否缓解甲状腺相关疲劳,首先需要明确这种疲劳的根源。甲状腺...
暖乎乎的酒酿南瓜丸子羹,一口甜... 秋冬最治愈的家常甜汤,必须提名酒酿南瓜丸子羹!金黄的南瓜丸子软乎乎,裹着清甜的酒酿汤汁,一口下去暖到...