解决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
为Java项目添加Redis缓存的方法
May 18 Redis
Java Socket实现Redis客户端的详细说明
May 26 Redis
浅谈Redis主从复制以及主从复制原理
May 29 Redis
redis实现的四种常见限流策略
Jun 18 Redis
Redis集群的关闭与重启操作
Jul 07 Redis
Redis如何实现分布式锁
Aug 23 Redis
Redis集群新增、删除节点以及动态增加内存的方法
Sep 04 Redis
Redis 限流器
May 15 Redis
Redis特殊数据类型bitmap位图
Jun 01 Redis
关于Redis的主从复制及哨兵问题
Jun 16 Redis
redis lua限流算法实现示例
Jul 15 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初始化对象和析构函数的简单实例
2014/03/11 PHP
完整删除ecshop中获取店铺信息的API
2014/12/24 PHP
PHP微信开发之根据用户回复关键词\位置返回附近信息
2016/06/24 PHP
PHP 使用二进制保存用户状态的实例
2018/01/29 PHP
php提供实现反射的方法和实例代码
2019/09/17 PHP
JavaScript 核心参考教程 内置对象
2009/10/13 Javascript
jQuery Pagination Ajax分页插件(分页切换时无刷新与延迟)中文翻译版
2013/01/11 Javascript
js中通过split函数分割字符串成数组小例子
2013/09/21 Javascript
jquery实现弹出层效果实例
2015/05/19 Javascript
最新最热最实用的15个jQuery插件汇总
2015/07/05 Javascript
javascript弹出拖动窗口
2015/08/11 Javascript
20分钟轻松创建自己的Bootstrap站点
2016/05/12 Javascript
js精准的倒计时函数分享
2016/06/29 Javascript
jquery实现拖动效果(代码分享)
2017/01/25 Javascript
简单实现bootstrap选项卡效果
2017/02/08 Javascript
Vue学习笔记进阶篇之函数化组件解析
2017/07/21 Javascript
JavaScript生成指定范围随机数和随机序列的方法
2018/05/05 Javascript
Vue Cli3 创建项目的方法步骤
2018/10/15 Javascript
Javascript查看大图功能代码实现
2020/05/07 Javascript
使用React代码动态生成栅格布局的方法
2020/05/24 Javascript
jQuery实现倒计时功能完整示例
2020/06/01 jQuery
Python类属性与实例属性用法分析
2015/05/09 Python
LRUCache的实现原理及利用python实现的方法
2017/11/21 Python
Python爬取当当、京东、亚马逊图书信息代码实例
2017/12/09 Python
pygame游戏之旅 python和pygame安装教程
2018/11/20 Python
python中使用 xlwt 操作excel的常见方法与问题
2019/01/13 Python
对python中矩阵相加函数sum()的使用详解
2019/01/28 Python
django如何自己创建一个中间件
2019/07/24 Python
Pycharm安装并配置jupyter notebook的实现
2020/05/18 Python
基于Python爬取51cto博客页面信息过程解析
2020/08/25 Python
pycharm配置安装autopep8自动规范代码的实现
2021/03/02 Python
质量月活动策划方案
2014/03/10 职场文书
教师自我剖析材料
2014/09/29 职场文书
爱牙日宣传活动总结
2015/02/05 职场文书
Python+腾讯云服务器实现每日自动健康打卡
2021/12/06 Python
Spring Boot 实现 WebSocket
2022/04/30 Java/Android