解决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数据结构之链表与字典的使用
May 11 Redis
详解Redis主从复制实践
May 19 Redis
5分钟教你docker安装启动redis全教程(全新方式)
May 29 Redis
了解Redis常见应用场景
Jun 23 Redis
Redis高并发防止秒杀超卖实战源码解决方案
Nov 01 Redis
使用RedisTemplat实现简单的分布式锁
Nov 20 Redis
Redis+Lua脚本实现计数器接口防刷功能(升级版)
Feb 12 Redis
Redis特殊数据类型HyperLogLog基数统计算法讲解
Jun 01 Redis
Redis基本数据类型Zset有序集合常用操作
Jun 01 Redis
Redis全局ID生成器的实现
Jun 05 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 eval函数用法 PHP中eval()函数小技巧
2012/10/31 PHP
PHP5函数小全(分享)
2013/06/06 PHP
腾讯QQ微博API接口获取微博内容
2013/10/30 PHP
php修改上传图片尺寸的方法
2015/04/14 PHP
浅析PHP中Session可能会引起并发问题
2015/07/23 PHP
php邮件发送的两种方式
2020/04/28 PHP
PHP实现笛卡尔积算法的实例讲解
2019/12/22 PHP
javascript跟随滚动效果插件代码(javascript Follow Plugin)
2013/08/03 Javascript
jQuery Animation实现CSS3动画示例介绍
2013/08/14 Javascript
JS如何将UTC格式时间转本地格式
2013/09/04 Javascript
利用javascript打开模态对话框(示例代码)
2014/01/11 Javascript
原生JS实现响应式瀑布流布局
2015/04/02 Javascript
Node.js的MongoDB驱动Mongoose基本使用教程
2016/03/01 Javascript
WebApi+Bootstrap+KnockoutJs打造单页面程序
2016/05/16 Javascript
JavaScript仿网易选项卡制作代码
2016/10/06 Javascript
select下拉框插件jquery.editable-select详解
2017/01/22 Javascript
利用webstrom调试Vue.js单页面程序的方法教程
2017/06/06 Javascript
js对象实例详解(JavaScript对象深度剖析,深度理解js对象)
2017/09/21 Javascript
Vue中nprogress页面加载进度条的方法实现
2020/11/13 Javascript
Python下的常用下载安装工具pip的安装方法
2015/11/13 Python
linux平台使用Python制作BT种子并获取BT种子信息的方法
2017/01/20 Python
Python异常原理及异常捕捉实现过程解析
2020/03/25 Python
python中random.randint和random.randrange的区别详解
2020/09/20 Python
python 读取、写入txt文件的示例
2020/09/27 Python
HTML5中在title标题标签里设置小图标的方法
2020/06/23 HTML / CSS
个人求职简历中英文自我评价
2013/12/16 职场文书
体育教育专业自荐信范文
2013/12/20 职场文书
中国梦演讲稿教师篇
2014/04/23 职场文书
2016年端午节红领巾广播稿
2015/12/18 职场文书
《最后一头战象》教学反思
2016/02/16 职场文书
JS继承最简单的理解方式
2021/03/31 Javascript
python中print格式化输出的问题
2021/04/16 Python
golang gopm get -g -v 无法获取第三方库的解决方案
2021/05/05 Golang
uniapp 微信小程序 自定义tabBar 导航
2022/04/22 Javascript
JS前端可视化canvas动画原理及其推导实现
2022/08/05 Javascript