解决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高级数据类型Hyperloglog、Bitmap的使用
May 24 Redis
高并发下Redis如何保持数据一致性(避免读后写)
Mar 18 Redis
redis数据结构之压缩列表
Mar 21 Redis
windows安装 redis 6.2.6最新步骤详解
Apr 26 Redis
Redis基本数据类型Set常用操作命令
Jun 01 Redis
浅谈Redis缓冲区机制
Jun 05 Redis
Redis+AOP+自定义注解实现限流
Jun 28 Redis
Redis Lua脚本实现ip限流示例
Jul 15 Redis
基于Redission的分布式锁实战
Aug 14 Redis
Redis主从复制操作和配置详情
Sep 23 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中上传大体积文件时需要的设置
2006/10/09 PHP
php读取txt文件并将数据插入到数据库
2016/02/23 PHP
php使用include 和require引入文件的区别
2017/02/16 PHP
js玩一玩WSH吧
2007/02/23 Javascript
学习YUI.Ext 第六天--关于树TreePanel(Part 1)
2007/03/10 Javascript
在一个js文件里远程调用jquery.js会在ie8下的一个奇怪问题
2010/11/28 Javascript
在js中判断checkboxlist(.net控件客户端id)是否有选中
2013/04/11 Javascript
javascript实现动态模态绑定grid过程代码
2014/09/22 Javascript
javascript使用avalon绑定实现checkbox全选
2015/05/06 Javascript
JS+CSS实现的拖动分页效果实例
2015/05/11 Javascript
简述JavaScript中正则表达式的使用方法
2015/06/15 Javascript
详解Node项目部署到云服务器上
2017/07/12 Javascript
Vue自定义事件(详解)
2017/08/19 Javascript
深入浅析JavaScript中的RegExp对象
2017/09/18 Javascript
Angularjs过滤器实现动态搜索与排序功能示例
2017/12/13 Javascript
微信小程序有旋转动画效果的音乐组件实例代码
2018/08/22 Javascript
Javascript中绑定click事件的四种方式介绍
2018/10/26 Javascript
vue项目如何监听localStorage或sessionStorage的变化
2021/01/04 Vue.js
JS代码实现页面切换效果
2021/01/10 Javascript
利用Python爬取可用的代理IP
2016/08/18 Python
详解python3实现的web端json通信协议
2016/12/29 Python
python字符串str和字节数组相互转化方法
2017/03/18 Python
Python3 处理JSON的实例详解
2017/10/29 Python
python学习笔记之列表(list)与元组(tuple)详解
2017/11/23 Python
Python3+Appium实现多台移动设备操作的方法
2019/07/05 Python
Django实现发送邮件找回密码功能
2019/08/12 Python
Django项目使用ckeditor详解(不使用admin)
2019/12/17 Python
python将数据插入数据库的代码分享
2020/08/16 Python
Python读取图像并显示灰度图的实现
2020/12/01 Python
美国运动鞋和运动服零售商:Footaction
2017/04/07 全球购物
心理学专业毕业生推荐信范文
2013/11/21 职场文书
安全目标管理责任书
2014/07/25 职场文书
四风问题班子对照检查材料
2014/09/27 职场文书
幼儿园六一主持词
2015/06/30 职场文书
详解Redis主从复制实践
2021/05/19 Redis
一篇文章带你搞懂Python类的相关知识
2021/05/20 Python