解决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 相关文章推荐
在K8s上部署Redis集群的方法步骤
Apr 27 Redis
浅谈Redis主从复制以及主从复制原理
May 29 Redis
比较几种Redis集群方案
Jun 21 Redis
redis客户端实现高可用读写分离的方式详解
Jul 04 Redis
解析redis hash应用场景和常用命令
Aug 04 Redis
Redis中缓存穿透/击穿/雪崩问题和解决方法
Dec 04 Redis
Redis 的查询很快的原因解析及Redis 如何保证查询的高效
Mar 16 Redis
使用Redis实现点赞取消点赞的详细代码
Mar 20 Redis
redis数据结构之压缩列表
Mar 21 Redis
在Centos 8.0中安装Redis服务器的教程详解
Mar 21 Redis
Redis中key的过期删除策略和内存淘汰机制
Apr 12 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
CI使用Tank Auth转移数据库导致密码用户错误的解决办法
2014/06/12 PHP
PHP实现手机号码中间四位用星号(*)隐藏的自定义函数分享
2014/09/27 PHP
php的4种常见运行方式
2015/03/20 PHP
PHP生成器简单实例
2015/05/13 PHP
THINKPHP截取中文字符串函数实例代码
2017/03/20 PHP
PHP Post获取不到非表单数据的问题解决办法
2018/02/27 PHP
解决Laravel5.x的php artisan migrate数据库迁移创建操作报错SQLSTATE[42000]
2020/04/06 PHP
js下用gb2312编码解码实现方法
2009/12/31 Javascript
jquery+css3打造一款ajax分页插件(自写)
2014/06/18 Javascript
使用JavaScript实现旋转的彩圈特效
2015/06/23 Javascript
jQuery判断是否存在滚动条的简单方法
2016/09/17 Javascript
Bootstrap源码学习笔记之bootstrap进度条
2016/12/24 Javascript
JavaScript中transform实现数字翻页效果
2017/03/08 Javascript
vue.js的computed,filter,get,set的用法及区别详解
2018/03/08 Javascript
JS实现读取xml内容并输出到div中的方法示例
2018/04/19 Javascript
详解vue中的computed的this指向问题
2018/12/05 Javascript
微信小程序开发实现的IP地址查询功能示例
2019/03/28 Javascript
js实现轮播图效果 z-index实现轮播图
2020/01/17 Javascript
原生js实现日历效果
2020/03/02 Javascript
解决removeEventListener 无法清除监听的问题
2020/10/30 Javascript
python处理xml文件的方法小结
2017/05/02 Python
python切片及sys.argv[]用法详解
2018/05/25 Python
selenium + python 获取table数据的示例讲解
2018/10/13 Python
Python3.7 新特性之dataclass装饰器
2019/05/27 Python
Python socket模块ftp传输文件过程解析
2019/11/05 Python
Python内置方法实现字符串的秘钥加解密(推荐)
2019/12/09 Python
浅谈pycharm导入pandas包遇到的问题及解决
2020/06/01 Python
Python基于locals返回作用域字典
2020/10/17 Python
HTML5 WebSocket实现点对点聊天的示例代码
2018/01/31 HTML / CSS
德国原装品牌香水、化妆品和手表网站:BRASTY.DE
2016/10/16 全球购物
管理学院毕业生自荐信范文
2014/03/10 职场文书
中介业务员岗位职责
2014/04/09 职场文书
《郑和远航》教学反思
2014/04/16 职场文书
举起手来观后感
2015/06/09 职场文书
Python实现的扫码工具居然这么好用!
2021/06/07 Python
bootstrapv4轮播图去除两侧阴影及线框的方法
2022/02/15 HTML / CSS