解决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 IP地址的绑定的实现
May 08 Redis
Redis实现订单自动过期功能的示例代码
May 08 Redis
深入浅析Redis 集群伸缩原理
May 15 Redis
5分钟教你docker安装启动redis全教程(全新方式)
May 29 Redis
浅析Redis Sentinel 与 Redis Cluster
Jun 24 Redis
缓存替换策略及应用(以Redis、InnoDB为例)
Jul 25 Redis
使用redis实现延迟通知功能(Redis过期键通知)
Sep 04 Redis
聊聊redis-dump工具安装问题
Jan 18 Redis
Redis 操作多个数据库的配置的方法实现
Mar 23 Redis
redis调用二维码时的不断刷新排查分析
Apr 01 Redis
Redis特殊数据类型Geospatial地理空间
Jun 01 Redis
Redis实战之Lettuce的使用技巧详解
Dec 24 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 数组处理函数extract详解及实例代码
2016/11/23 PHP
JavaScript加密解密7种方法总结分析
2007/10/07 Javascript
利用javascript/jquery对上传文件格式过滤的方法
2009/07/25 Javascript
js下用eval生成JSON对象
2010/09/17 Javascript
jQuery使用经验小技巧(推荐)
2016/05/31 Javascript
jQuery中的一些常见方法小结(推荐)
2016/06/13 Javascript
需灵活掌握的Bootstrap预定义排版类 你精通吗?
2016/06/20 Javascript
JavaScript中全选、全不选、反选、无刷新删除、批量删除、即点即改入库(在yii框架中操作)的代码分享
2016/11/01 Javascript
js实现首屏延迟加载实现方法 js实现多屏单张图片延迟加载效果
2017/07/17 Javascript
js实现图片轮播效果学习笔记
2017/07/26 Javascript
详解微信小程序中组件通讯
2018/10/30 Javascript
js实现验证码干扰(静态)
2021/02/22 Javascript
[05:03]显微镜下的DOTA2第十期——Ti3豪之超神幽鬼
2014/06/23 DOTA
[01:05:30]VP vs TNC 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
Python语言的12个基础知识点小结
2014/07/10 Python
python实现矩阵乘法的方法
2015/06/28 Python
python使用pymysql实现操作mysql
2016/09/13 Python
分享一个简单的python读写文件脚本
2017/11/25 Python
python提取具有某种特定字符串的行数据方法
2018/12/11 Python
Python列表list常用内建函数实例小结
2019/10/22 Python
运行tensorflow python程序,限制对GPU和CPU的占用操作
2020/02/06 Python
pip install 使用国内镜像的方法示例
2020/04/03 Python
python实现密度聚类(模板代码+sklearn代码)
2020/04/27 Python
你需要学会的8个Python列表技巧
2020/06/24 Python
html5拍照功能实现代码(htm5上传文件)
2013/12/11 HTML / CSS
HTML5实现视频弹幕功能
2019/08/09 HTML / CSS
Omio荷兰:预订火车、巴士和机票
2018/11/04 全球购物
爱尔兰最大的体育零售商:Life Style Sports
2019/06/12 全球购物
英国手工制作的现代与经典的沙发和床:Love Your Home
2020/09/26 全球购物
年度考核自我鉴定
2014/02/02 职场文书
学校卫生检查制度
2014/02/03 职场文书
放飞中国梦演讲稿
2014/04/23 职场文书
单位活动策划方案
2014/08/17 职场文书
水利专业大学生职业生涯规划书范文
2014/09/17 职场文书
辣妈辣妹观后感
2015/06/10 职场文书
创业开店,这样方式更合理
2019/08/26 职场文书