系统城装机大师 - 固镇县祥瑞电脑科技销售部宣传站!

当前位置:首页 > 数据库 > Redis > 详细页面

Redis批量删除Key的三种方式小结

时间:2023-11-01来源:系统城装机大师作者:佚名

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的路径

连上redis
./redis-cli -h ip -p 端口 -a 密码选择数据库

select 数据库下标

模糊查询key是否存在
keys ‘UPLOAD_*’

执行exit命令 退出redis删除 端口为 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

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

配置:

1
2
3
4
连接的别名(Name:自定义)
Host(redis服务的ip)
端口(port)
密码(Auth)连接到redis服务

选择库,并模糊匹配key

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

三.使用jedis批量删除keys

引入jedis包

1
2
3
4
5
<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>2.7.0</version>
</dependency>

使用jedisApi连接redis

1
2
3
4
5
6
7
8
9
10
//连接redis ,redis的默认端口是6379
Jedis  jedis = new Jedis ("localhost",6379);
 
//验证密码,如果没有设置密码这段代码省略
jedis.auth("password");
//连接
jedis.connect();
 
//断开连接
jedis.disconnect();

编写批量删除的方法

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// 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();
  }

到此这篇关于Redis批量删除Key的三种方式小结的文章就介绍到这了

分享到:

相关信息

  • redis实现session共享的方法

    引言大厂很多项目都是部署到多台服务器上,这些服务器在各个地区都存在,当我们访问服务时虽然执行的是同一个服务,但是可能是不同服务器运行的;在我学习项目时遇到这样一个登录情...

    2023-11-01

  • 简单聊一聊redis过期时间的问题

    1.多次修改一个redis的String过期键,如何保证他仍然能保留第一次设置时的删除时间 2.修改hash、set、Zset、list的值,会使过期时间重置吗?...

    2023-11-01

系统教程栏目

栏目热门教程

人气教程排行

站长推荐

热门系统下载