redis 命令别名_redis 命令、命令行根据前缀(通配符)批量删除redis存储的key

redis简介

redis作为缓存服务器在项目中经常使用

使用redis存储数据时,我们经常会将key分组

使用冒号(:)分组或者其他的自定义前缀方式,如果我们需要清除redis特定的key内容时,在命令行下又没有直接的命令可用,可以使用linux的xargs参数或者第三方工具

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

首先linux服务器上需要安装redis客户端,然后进入到redis-cli命令所在的目录

./redis-cli -h IP -p PORT -a PASSWORD keys 'key*' | xargs ./redis-cli -h IP -p PORT -a PASSWORD del

IP:redis服务器的IP地址

PORT:redis服务的端口

PASSWORD :redis服务的密码

例如:

删除本机127.0.0.1,默认端口6379,密码为123456的redis服务上org开头的key

./redis-cli -h 127.0.0.1 -p 6379 -a 123456 keys 'org*' | xargs ./redis-cli -h 127.0.0.1 -p 6379 -a 123456 del

二、使用图形界面工具RedisDesktopManager

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

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

redis-connect.png

配置:连接的别名(Name:自定义)、Host(redis服务的ip)、端口(port)、密码(Auth)连接到redis服务

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

del-namespace.png

注意如果通过工具的Namaspace删除key分组,key的前缀分别必须使用冒号“:”进行分组,否则无法使用工具删除

三、使用jedis批量删除keys

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

// java代码

public static void deleteByPattern(Jedis jedis, String pattern) {

Set 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();

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值