解决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实现限流的三种方式
Apr 27 Redis
基于Redis位图实现用户签到功能
May 08 Redis
Redis 配置文件重要属性的具体使用
May 20 Redis
Java Socket实现Redis客户端的详细说明
May 26 Redis
Windows下redis下载、redis安装及使用教程
Jun 02 Redis
Redis字典实现、Hash键冲突及渐进式rehash详解
Sep 04 Redis
Redis三种集群模式详解
Oct 05 Redis
Redis Stream类型的使用详解
Nov 11 Redis
分布式Redis Cluster集群搭建与Redis基本用法
Feb 24 Redis
Redis超详细讲解高可用主从复制基础与哨兵模式方案
Apr 07 Redis
Redis 异步机制
May 15 Redis
一文教你快速生成MySQL数据库关系图
Jun 28 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使用memcache存储session的详解
2013/06/25 PHP
PHP中的魔术方法总结和使用实例
2015/05/11 PHP
php获取本机真实IP地址实例代码
2016/03/31 PHP
PHP Primary script unknown 解决方法总结
2019/08/22 PHP
JS Excel读取和写入操作(模板操作)实现代码
2010/04/11 Javascript
JavaScript高级程序设计 读书笔记之十一 内置对象Global
2012/03/07 Javascript
JS 实现获取打开一个界面中输入的值
2013/03/19 Javascript
javaScript实现浮点数转十六进制字符
2013/10/29 Javascript
Javascript学习笔记之 对象篇(三) : hasOwnProperty
2014/06/24 Javascript
javascript常用的方法分享
2015/07/01 Javascript
黑帽seo劫持程序,js劫持搜索引擎代码
2015/09/15 Javascript
Jquery-1.9.1源码分析系列(十一)之DOM操作
2015/11/25 Javascript
Node.js的项目构建工具Grunt的安装与配置教程
2016/05/12 Javascript
jQuery实现图像旋转动画效果
2016/05/29 Javascript
Javascript日期格式化format函数的使用方法
2016/08/30 Javascript
CSS3 3D 技术手把手教你玩转
2016/09/02 Javascript
Bootstrap基本样式学习笔记之按钮(4)
2016/12/07 Javascript
js实现文字列表无缝滚动效果
2017/06/23 Javascript
基于jQuery的表单填充实例
2017/08/22 jQuery
layui上传图片到服务器的非项目目录下的方法
2019/09/26 Javascript
请求时token过期自动刷新token操作
2020/09/11 Javascript
[02:32]【DOTA2亚洲邀请赛】iceice,梦开始的地方
2017/03/13 DOTA
python中精确输出JSON浮点数的方法
2014/04/18 Python
详解Python中的循环语句的用法
2015/04/09 Python
利用Python实现颜色色值转换的小工具
2016/10/27 Python
Python算法输出1-9数组形成的结果为100的所有运算式
2017/11/03 Python
django框架基于模板 生成 excel(xls) 文件操作示例
2019/06/19 Python
Python发送邮件的实例代码讲解
2019/10/16 Python
如何基于python实现年会抽奖工具
2020/10/20 Python
使用pandas读取表格数据并进行单行数据拼接的详细教程
2021/03/03 Python
小米官方旗舰店:Xiaomi
2020/08/07 全球购物
大学中国梦演讲稿
2014/04/23 职场文书
医生个人自我剖析材料
2014/10/08 职场文书
详解Oracle数据库中自带的所有表结构(sql代码)
2021/11/20 Oracle
MySQL去除密码登录告警的方法
2022/04/20 MySQL