遇到的问题:

在开发过程中,会遇到要批量删除某种规则的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值相关推荐

  1. redis 批量删除 key

    redis 批量删除 key 使用 lua 脚本简单实现一个使用 keys 指令和 del 指令批量删除 key 的功能. local keyList = redis.call('keys', ARG ...

  2. php redis删除所有key,php redis批量删除key的方法

    php redis批量删除key的方法,遍历,命令,前缀,数组,增量 php redis批量删除key的方法 易采站长站,站长之家为您整理了php redis批量删除key的方法的相关内容. php ...

  3. php redis 删除key 通配符,php中redis批量删除key的方法是什么

    php中redis批量删除key的方法是什么 发布时间:2020-08-28 14:42:05 来源:亿速云 阅读:159 作者:小新 小编给大家分享一下php中redis批量删除key的方法是什么, ...

  4. php redis 清空list_php redis批量删除key的方法

    php redis删除key的方法:首先使用scan命令增量迭代的方式遍历出以[XX]为前缀的key:然后通过unlink函数删除指定的key即可. php redis批量删除key 摘要 使用sca ...

  5. redis批量删除key命令

    1.cd到redis的src目录,要使用其中的文件redis-cli执行后续命令(也可能不需要这步) cd /home/useradmin/redis-5.0.3/src 2.redis批量删除key ...

  6. redis批量删除key

    批量删除Key Redis 中有删除单个 Key 的指令 DEL,但好像没有批量删除 Key 的指令,不过我们可以借助 Linux 的 xargs 指令来完成这个动作 1 2 3 redis-cli ...

  7. Redis批量删除Key的三种方式(linux和windows环境下都有)

    Redis 中有删除单个 Key 的指令 del,网上资料大多数都说没有批量删除 Key 的指令,是否真这样有待再次确定,不过我们可以借助 Linux的 xargs 指令来完成这个动作,redis本身 ...

  8. php redis批量删除key,redis批量删除某种规则的key

    一.前言 在工作中经常遇到需要批量删除某种规则的key的情况,如缓存的课程数据"course-课程uid",课程uid是变量,我们需要删除类似于"course-*&quo ...

  9. redis 批量删除key

    redis本身不支持批量删除key.可以借助jedis客户端,shell和lua脚本来实现 下面将逐一介绍这三种方式 比如删除前缀为 "mykey" 的所有key 1.  shel ...

最新文章

  1. 区块链研习 | 区块链里所说的“智能合约”是什么? 本文作者:敖萌 编辑:温晓桦 2017-10-11 20:31 导语:谈到区块链,必然离不开“智能合约”这个词。我们在本系列的第一篇文章中提到“智能
  2. 最优资产组合步骤_重新设计投资组合网站之前,请按照以下5个步骤进行操作
  3. window mysql集群视频_windows7实现mysql集群cluster-mysql簇
  4. java实体类实现抽象类_java接口、抽象类、实体类关系介绍
  5. 比特币区块链如何运作?
  6. 使用 JS刷新框架子页面
  7. Qt窗口部件——对话框QDialog
  8. 素性测试AKS算法程序
  9. 凸优化第五章对偶 5.6 扰动及灵敏度分析
  10. jmeter 分布式注意事项
  11. Altium Designer(AD)软件绘图一般步骤
  12. IEC60068-2-5太阳辐射模拟试验测试
  13. Java编写五线谱上的音符_在五线谱上怎么写音符
  14. msgbox php,VBA消息框(MsgBox)
  15. 关于PAT报错:warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result
  16. status_breakpoint谷歌浏览器如何解决?
  17. 怎么看SaaS企业中的收入留存率?
  18. 一个神奇指标公式,能找到立刻单边行情的品种,准确率惊人,堪称交易法宝!
  19. 【Django毕业设计源码】python在线办公系统
  20. 花城fm v2.8.0

热门文章

  1. 分数的大小比较优秀教案_六年级分数大小比较教案
  2. Android Studio问题汇总血压监测安卓端搭建
  3. vue3.x显示json数据组件-vue3-json-viewer
  4. CSS3咖啡制作全过程动画
  5. Ubuntu通过fim或xdg-open在终端中打开图片
  6. DHL埃森哲趋势报告:区块链完全有能力颠覆整个物流业(中文版)
  7. 论文阅读:基于用户上网数据的电影个性化推荐系统研究
  8. 【程序源代码】医院预约挂号小程序
  9. 如何配置在线视频服务器参数?
  10. 【游戏开发】基于MMORPG的游戏客户端逻辑效率开发思路