【Redis】批量删除Key的三种方式

Redis 中有删除单个 Key 的指令 del,但好像没有批量删除 Key 的指令,不过我们可以借助 Linux的 xargs 指令来完成这个动作

一.使用命令行批量删除redis的key

语法

./redis-cli -h IP -p PORT -a PASSWORD -n NUM keys ‘key*’ | xargs ./redis-cli -h IP -p PORT -a PASSWORD -n NUM del

IP:redis服务器的IP地址
PORT:redis服务的端口
PASSWORD :redis服务的密码
NUM:redis库的下标

记得以上批量删除,需要退出redis的命令行模式下操作。必须要指定redis的路径

  1. 连上redis
    ./redis-cli -h ip -p 端口 -a 密码
  2. 选择数据库
    select 数据库下标
  3. 模糊查询key是否存在
    keys ‘UPLOAD_*’
  4. 执行exit命令 退出redis
  5. 删除 端口为 6585 密码为 123456 且数据库为1 中所有UPLOAD_开头的key

/usr/bin/redis-cli -n 1 -p 6585 -a 123456 keys ‘UPLOAD_*’ | xargs /usr/bin/redis-cli -n 1 -p 6585 -a 123456 del

二.使用图形界面工具RedisDesktopManager

新版本的RedisDesktopManager目前支持通过分组批量删除key

  1. 打开软件,点击左下角的“Connect to Redis Server”新建redis链接

  2. 配置:

    连接的别名(Name:自定义)
    Host(redis服务的ip)
    端口(port)
    密码(Auth)连接到redis服务
    
  3. 选择库,并模糊匹配key

  4. 在需要删除的key分组上右击“Delete Namaspace”删除分组

三.使用jedis批量删除keys

  1. 引入jedis包

    <dependency>
        <groupId>redis.clients</groupId>
        <artifactId>jedis</artifactId>
        <version>2.7.0</version>
    </dependency>
    
  2. 使用jedisApi连接redis

//连接redis ,redis的默认端口是6379
Jedis  jedis = new Jedis ("localhost",6379); 

//验证密码,如果没有设置密码这段代码省略
jedis.auth("password"); 
//连接
jedis.connect();

//断开连接
jedis.disconnect();
  1. 编写批量删除的方法

    方法将需要删除的key转换成数组传入jedis.del(keys)批量删除key

 // java代码
    public static void deleteByPattern(Jedis jedis, String pattern) {
        Set<String> keys = jedis.keys(pattern);

        if(keys != null && !keys.isEmpty()) {
            String keyArr[] = new String[keys.size()];

            jedis.del(keys.toArray(keyArr));
        }
    }

// jedis的del方法源码
  public Long del(final String... keys) {
    checkIsInMultiOrPipeline();
    client.del(keys);
    return client.getIntegerReply();
  }
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值