解决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实现实时排行榜功能
Jul 02 Redis
嵌入式Redis服务器在Spring Boot测试中的使用教程
Jul 21 Redis
redis缓存存储Session原理机制
Nov 20 Redis
浅谈Redis跟MySQL的双写问题解决方案
Feb 24 Redis
Redis安装使用RedisJSON模块的方法
Mar 23 Redis
使用Redis做预定库存缓存功能
Apr 02 Redis
一文搞懂Redis中String数据类型
Apr 03 Redis
解决 Redis 秒杀超卖场景的高并发
Apr 12 Redis
Redis实现一个账号只能登录一个设备
Apr 19 Redis
Redis特殊数据类型bitmap位图
Jun 01 Redis
Redis实现主从复制方式(Master&Slave)
Jun 21 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
全国FM电台频率大全 - 30 宁夏回族自治区
2020/03/11 无线电
php通过array_merge()函数合并两个数组的方法
2015/03/18 PHP
学习php设计模式 php实现访问者模式(Visitor)
2015/12/07 PHP
javascript indexOf函数使用说明
2008/07/03 Javascript
基于jQuery的淡入淡出可自动切换的幻灯插件
2010/08/24 Javascript
js网页侧边随页面滚动广告效果实现
2011/04/14 Javascript
js中设置元素class的三种方法小结
2011/08/28 Javascript
js中arguments的用法(实例讲解)
2013/11/30 Javascript
jQuery插件开发的两种方法及$.fn.extend的详解
2014/01/16 Javascript
jquery append()方法与html()方法的区别及使用介绍
2014/08/01 Javascript
JavaScript实现简单的二级导航菜单实例
2015/04/15 Javascript
js实现简洁的TAB滑动门效果代码
2015/09/06 Javascript
jQuery 移动端artEditor富文本编辑器
2016/01/11 Javascript
JQuery PHP图片在线裁剪实例
2020/07/27 Javascript
Vue异步组件使用详解
2017/04/08 Javascript
NodeJs之word文件生成与解析的实现代码
2019/04/01 NodeJs
layui实现数据表格自定义数据项
2019/10/26 Javascript
js实现简单抽奖功能
2020/11/24 Javascript
JavaScript中的Proxy对象
2020/11/27 Javascript
Python中处理字符串的相关的len()方法的使用简介
2015/05/19 Python
基于python的Tkinter编写登陆注册界面
2017/06/30 Python
深入了解Python中pop和remove的使用方法
2018/01/09 Python
python 3调用百度OCR API实现剪贴板文字识别
2018/09/04 Python
flask开启多线程的具体方法
2020/08/02 Python
django跳转页面传参的实现
2020/09/17 Python
python 利用Pyinstaller打包Web项目
2020/10/23 Python
Python实现简单的猜单词小游戏
2020/10/28 Python
Ubuntu 20.04安装Pycharm2020.2及锁定到任务栏的问题(小白级操作)
2020/10/29 Python
使用html5新特性轻松监听任何App自带返回键的示例
2018/03/13 HTML / CSS
印度最大的网上花店:Ferns N Petals(鲜花、礼品和蛋糕)
2017/10/16 全球购物
总经理岗位职责范本
2014/02/02 职场文书
庆六一开幕词
2015/01/29 职场文书
公务员政审个人总结
2015/02/12 职场文书
销售经理岗位职责范本
2015/04/02 职场文书
小学生家长意见
2015/06/03 职场文书
vue使用echarts实现折线图
2022/03/21 Vue.js