解决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 相关文章推荐
redis 查看所有的key方式
May 07 Redis
Redis基于Bitmap实现用户签到功能
Jun 20 Redis
浅谈Redis中的RDB快照
Jun 29 Redis
使用redis实现延迟通知功能(Redis过期键通知)
Sep 04 Redis
Redis RDB技术底层原理详解
Sep 04 Redis
在项目中使用redis做缓存的一些思路
Sep 14 Redis
Redis三种集群模式详解
Oct 05 Redis
Redis中缓存穿透/击穿/雪崩问题和解决方法
Dec 04 Redis
Redis+Lua脚本实现计数器接口防刷功能(升级版)
Feb 12 Redis
Redis如何使用乐观锁(CAS)保证数据一致性
Mar 25 Redis
详解Redis的三种常用的缓存读写策略步骤
May 06 Redis
Redis实现分布式锁的五种方法详解
Jun 14 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 nl2br()格式化输出的详解
2013/06/05 PHP
PHP基于timestamp和nonce实现的防止重放攻击方案分析
2019/07/26 PHP
jquery自动切换tabs选项卡的具体实现
2013/12/24 Javascript
javascript操作css属性
2013/12/30 Javascript
JavaScript和CSS交互的方法汇总
2014/12/02 Javascript
用js读、写、删除Cookie代码续篇
2014/12/03 Javascript
AngularJS入门教程之Scope(作用域)
2016/07/27 Javascript
对js eval()函数的一些见解
2016/08/15 Javascript
Bootstrap Search Suggest使用例子
2016/12/21 Javascript
select自定义小三角样式代码(实用总结)
2017/08/18 Javascript
解决vue单页面应用打包后相对路径、绝对路径相关问题
2020/08/14 Javascript
解决vuex刷新数据消失问题
2020/11/12 Javascript
Python彩色化Linux的命令行终端界面的代码实例分享
2016/07/02 Python
Python在不同目录下导入模块的实现方法
2017/10/27 Python
Python数据结构与算法之完全树与最小堆实例
2017/12/13 Python
Python中实现单例模式的n种方式和原理
2018/11/14 Python
python点击鼠标获取坐标(Graphics)
2019/08/10 Python
Python多继承以及MRO顺序的使用
2019/11/11 Python
使用pytorch实现可视化中间层的结果
2019/12/30 Python
tensorflow 实现从checkpoint中获取graph信息
2020/02/10 Python
详解python安装matplotlib库三种失败情况
2020/07/28 Python
Pytorch之Tensor和Numpy之间的转换的实现方法
2020/09/03 Python
python批量合成bilibili的m4s缓存文件为MP4格式 ver2.5
2020/12/01 Python
Python 用__new__方法实现单例的操作
2020/12/11 Python
卡西欧B级产品官方网站:Casio Outlet
2018/05/22 全球购物
伦敦高达60%折扣的钻石珠宝商:Purely Diamonds
2018/06/24 全球购物
德国运动营养和健身网上商店:Myprotein.de
2018/07/18 全球购物
UDP协议功能
2013/01/06 面试题
专科毕业生学习生活的自我评价
2013/10/26 职场文书
村抢险救灾方案
2014/05/09 职场文书
安全生产知识竞赛活动总结
2014/07/07 职场文书
反洗钱宣传活动总结
2014/08/26 职场文书
违纪检讨书
2015/01/27 职场文书
法定代表人身份证明书
2015/06/18 职场文书
使用php的mail()函数实现发送邮件功能
2021/06/03 PHP
Nginx+Tomcat负载均衡集群的实现示例
2021/10/24 Servers