解决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位图实现用户签到功能
May 08 Redis
Redis可视化客户端小结
Jun 10 Redis
了解Redis常见应用场景
Jun 23 Redis
redis使用不当导致应用卡死bug的过程解析
Jul 01 Redis
详解Redis在SpringBoot工程中的综合应用
Oct 16 Redis
redis的list数据类型相关命令介绍及使用
Jan 18 Redis
解决linux下redis数据库overcommit_memory问题
Feb 24 Redis
源码分析Redis中 set 和 sorted set 的使用方法
Mar 22 Redis
Redis安装使用RedisJSON模块的方法
Mar 23 Redis
一文教你快速生成MySQL数据库关系图
Jun 28 Redis
Redis过期数据是否会被立马删除
Jul 23 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
eaglephp使用微信api接口开发微信框架
2014/01/09 PHP
php实现当前页面点击下载文件的实例代码
2016/11/16 PHP
php mysql_list_dbs()函数用法示例
2017/03/29 PHP
用脚本调用样式的几种方法
2006/12/09 Javascript
javascript 数组的方法集合
2008/06/05 Javascript
IE Firefox 使用自定义标签的区别
2009/10/15 Javascript
javascript的事件触发器介绍的实现
2014/06/05 Javascript
js数组中如何随机取出一个值
2014/06/13 Javascript
js实现正方形颜色从下往上升的效果
2014/08/04 Javascript
Javascript冒泡排序算法详解
2014/12/03 Javascript
微信小程序 安全包括(框架、功能模块、账户使用)详解
2017/01/16 Javascript
js模态对话框使用方法详解
2017/02/16 Javascript
微信小程序 空白页重定向解决办法
2017/06/27 Javascript
JavaScript使用Ajax上传文件的示例代码
2017/08/10 Javascript
javascript简写常用的12个技巧(可以大大减少你的js代码量)
2020/03/28 Javascript
webpack学习教程之前端性能优化总结
2017/12/05 Javascript
Vue项目webpack打包部署到Tomcat刷新报404错误问题的解决方案
2018/05/15 Javascript
Vue 中可以定义组件模版的几种方式
2019/08/06 Javascript
利用d3.js实现蜂巢图表带动画效果
2019/09/03 Javascript
js的Object.assign用法示例分析
2020/03/05 Javascript
[02:09]DOTA2辉夜杯 EHOME夺冠举杯现场
2015/12/28 DOTA
Python+Socket实现基于UDP协议的局域网广播功能示例
2017/08/31 Python
Python安装模块的常见问题及解决方法
2018/02/05 Python
python删除不需要的python文件方法
2018/04/24 Python
基于wxPython的GUI实现输入对话框(1)
2019/02/27 Python
Win下PyInstaller 安装和使用教程
2019/12/25 Python
Python3常见函数range()用法详解
2019/12/30 Python
flask项目集成swagger的方法
2020/12/09 Python
利用纯CSS3实现动态的自行车特效源码
2017/01/20 HTML / CSS
温馨提示标语
2014/06/26 职场文书
社团活动总结模板
2014/06/30 职场文书
大学社团招新的通讯稿
2014/09/10 职场文书
学前班教学反思
2016/02/24 职场文书
2016优秀青年志愿者事迹材料
2016/02/25 职场文书
JMeter对MySQL数据库进行压力测试的实现步骤
2022/01/22 MySQL
python分分钟绘制精美地图海报
2022/02/15 Python