时间:2023-11-01来源:系统城装机大师作者:佚名
Redis 中有删除单个 Key 的指令 del,但好像没有批量删除 Key 的指令,不过我们可以借助 Linux的 xargs 指令来完成这个动作
语法
./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目前支持通过分组批量删除key
打开软件,点击左下角的“Connect to Redis Server”新建redis链接
配置:
1 2 3 4 |
连接的别名(Name:自定义) Host(redis服务的ip) 端口(port) 密码(Auth)连接到redis服务 |
选择库,并模糊匹配key
在需要删除的key分组上右击“Delete Namaspace”删除分组
引入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的三种方式小结的文章就介绍到这了
2023-11-01
Redis实现分布式锁详解2023-11-01
Redis全量同步和增量同步原理2023-11-01
Redis 键值设计使用总结一、高可用 什么是高可用 二、Redis持久化 持久化功能 RDB持久化 触发条件 bgsave执行流程 AOF持久化 执行流程 命令追加 文件写入和文件同步 文件重写 文件重写流程 三、RDB和AOF的优缺点 RDB持久化的优缺点 优点 ...
2023-11-01
最近遇到一个比较紧急的任务,要求统计在线用户,目的是配合性能测评,要求证明自己系统的在线用户能够达标,不过系统因为历史原因,并没有这个功能,所以只能去springSession官网和网...
2023-11-01