解决redis批量删除key值的问题


Posted in Redis onMarch 23, 2022

遇到的问题:

在开发过程中,会遇到要批量删除某种规则的key,例如login_logID(ID为变量),现在需要删除"login_log*"这一类的数据,但是redis本身只有批量查询一类key值的命令keys,但是没有批量删除某一个类的命令。

解决办法:

先查询,在删除,使用xargs传参(xargs可以将管道或标准输入(stdin)数据转换成命令行参数),先执行查询语句,在将查询出来的key值,当初del的参数去删除。

redis-cli  KEYS key* (查找条件) | xargs redis-cli  del

=>[执行后返回的结果影响数量]:(integer) 10[数量10个]
做个实验,先创三个同类型的key值

127.0.0.1:6379> set test1 1
OK
127.0.0.1:6379> set test2 2
OK
127.0.0.1:6379> set test3 3
OK

查询keys

127.0.0.1:6379> keys test*
1) "test3"
2) "test2"
3) "test1"

退出redis,在本地执行删除命令

[root@localhost redis]# redis-cli -a 密码 -n 0(数据库) keys "test*" |xargs redis-cli -a 密码 -n 0(数据库)  del
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
(integer) 3 (返回行数)

原理解析:
  这个命令是先通过redis客户端执行了keys命令,模糊搜索出所有的key,通过xargs命令,将前面查询出来的key作为后面redis的del命令的输入
相当于执行了 redis-cli del test1 test2 test3
注意:这里执行时需要带上redis条件,-a是输入密码,-n是指定数据库,如果redis不在本地或者其他有变动还需要加上-h redis所在服务器ip,-p端口
例如

redis-cli -h 127.0.0.1(IP地址) -p 6379 (端口号) -a 密码 -n 1(数据在第几个库就写几) KEYS key* (查找条件) | xargs redis-cli (-h (IP地址) -p 6379 (端口号) -a 密码 -n 1 ) del

补充知识:

redis中的删除
1.Redis DEL 命令用于删除已存在的键,不存在的 key 会被忽略。
例如:

127.0.0.1:6379> set hello world
OK
127.0.0.1:6379> del hello
(integer) 1

但是del只能删除一个或多个,不能批量删除,当需要删除数据量过大时就不适用了
2.清空整个 Redis 服务器的数据:flushall
3.清空当前库中的所有 key:flushdb

到此这篇关于redis批量删除key值的文章就介绍到这了,更多相关redis批量删除key值内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Redis 相关文章推荐
分布式锁为什么要选择Zookeeper而不是Redis?看完这篇你就明白了
May 21 Redis
Windows下redis下载、redis安装及使用教程
Jun 02 Redis
详解Redis复制原理
Jun 04 Redis
k8s部署redis cluster集群的实现
Jun 24 Redis
聊一聊Redis与MySQL双写一致性如何保证
Jun 26 Redis
redis 存储对象的方法对比分析
Aug 02 Redis
Redis读写分离搭建的完整步骤
Sep 14 Redis
基于Redis zSet实现滑动窗口对短信进行防刷限流的问题
Feb 12 Redis
浅谈Redis跟MySQL的双写问题解决方案
Feb 24 Redis
Redis 哨兵机制及配置实现
Mar 25 Redis
muduo TcpServer模块源码分析
Apr 26 Redis
redis protocol通信协议及使用详解
Jul 15 Redis
源码分析Redis中 set 和 sorted set 的使用方法
Redis监控工具RedisInsight安装与使用
在Centos 8.0中安装Redis服务器的教程详解
redis数据结构之压缩列表
Mar 21 #Redis
Redis高可用集群redis-cluster详解
使用Redis实现点赞取消点赞的详细代码
Mar 20 #Redis
Redis集群节点通信过程/原理流程分析
You might like
PHP判断表单复选框选中状态完整例子
2014/06/24 PHP
php+mysqli批量查询多张表数据的方法
2015/01/29 PHP
php判断数组中是否存在指定键(key)的方法
2015/03/17 PHP
PHP抽象类与接口的区别详解
2019/03/21 PHP
pjblog修改技巧汇总
2007/03/12 Javascript
JavaScript 计算当天是本年本月的第几周
2009/03/22 Javascript
easyui Draggable组件实现拖动效果
2015/08/19 Javascript
Jquery+Ajax+PHP+MySQL实现分类列表管理(下)
2015/10/28 Javascript
ztree获取选中节点时不能进入可视区域出现BUG如何解决
2015/12/03 Javascript
jQuery EasyUI菜单与按钮详解
2016/07/13 Javascript
jQuery 生成svg矢量二维码
2016/08/09 Javascript
WebPack配置vue多页面的技巧
2018/05/15 Javascript
讲解vue-router之什么是编程式路由
2018/05/28 Javascript
nodejs开发一个最简单的web服务器实例讲解
2020/01/02 NodeJs
Handtrack.js库实现实时监测手部运动(推荐)
2021/02/08 Javascript
[01:15:15]VG VS EG Supermajor小组赛B组胜者组第一轮 BO3第二场 6.2
2018/06/03 DOTA
pygame学习笔记(3):运动速率、时间、事件、文字
2015/04/15 Python
python通过ftplib登录到ftp服务器的方法
2015/05/08 Python
Python中的错误和异常处理简单操作示例【try-except用法】
2017/07/25 Python
python做反被爬保护的方法
2019/07/01 Python
CSS3中的Media Queries学习笔记
2016/05/23 HTML / CSS
导出HTML5 Canvas图片并上传服务器功能
2019/08/16 HTML / CSS
英国优质家居用品网上品牌:URBANARA
2018/06/01 全球购物
优质飞蝇钓和渔具:RiverBum
2020/05/10 全球购物
大学学年自我鉴定
2013/10/28 职场文书
幼儿运动会邀请函
2014/01/17 职场文书
留学推荐信怎么写
2014/01/25 职场文书
小学端午节活动方案
2014/03/13 职场文书
安全生产标语
2014/06/06 职场文书
销售人员求职信
2014/07/22 职场文书
安全责任书怎么写
2014/07/28 职场文书
校园游戏活动新闻稿
2014/10/15 职场文书
本科毕业论文致谢词
2015/05/14 职场文书
导游词之南迦巴瓦峰
2019/11/19 职场文书
java如何实现socket连接方法封装
2021/09/25 Java/Android
解决Mysql中的innoDB幻读问题
2022/04/29 MySQL