redis批量删除key的步骤_Redis

来源:脚本之家  责任编辑:小易  

在linux中 批量操作redis中的 keys的方法:21131.统计个数:redis中名称5261含有OMP_OFFLINE的key的个数;src/redis-cli keys "*OMP_OFFLINE*"|wc -l2.批量删除4102批量删除 0号数1653据库中名称含有OMP_OFFLINE的key:src/redis-cli -n 0 keys "*OMP_OFFLINE*"|xargs src/redis-cli -n 0 del在redis的客户端环境中并不支持批量删除,ShawKun,红2113灯硬闯,马路横穿可以使用linux的5261xargs来做到 如:*/redis-cli keys "prefix*" | xargs */redis-cli del 如果4102是访问特定的数1653据库,则可以:*/redis-cli -n 0 keys "prefix*" | xargs */redis-cli -n 0 del本回答被网友采纳,方案一:用keys ‘str*’ 列出2113要删除的key,接linux管道删除(linux命令5261行执行)根据通配符查看待4102删除的1653 key :    redis-cli KEYS "site_msg_999*”借助 Linux 的 xargs 指令来完成这个动作:redis-cli keys "*" | xargs redis-cli del  //如果redis-cli没有设置成系统变量,需要指定redis-cli的完整路径,如:/etc/redis-cli keys "*" | xargs /etc/redis-cli del方案二:分两步先查询指定pattern的keys,再通过del key1 key2 key3 ...语句批量删除,  批量删除Redis下特定2113pattern的keys:  5261可以使用linux的xargs来做到4102,如:  */redis-cli keys "prefix*"  如果是访问1653特定的数据库,则可以:  */redis-cli -n 0 keys "prefix*"  Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。  redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步,方案一:2113用keys ‘str*’ 列出要删除的5261key,接linux管道删除(linux命令行执行)4102根据通配符查看待删除的 key : redis-cli KEYS "site_msg_999*”借助 Linux 的 xargs 指令来完成这个动作1653:如:  */redis-cli keys "prefix*"  如果是访问特定的数据库,则可以:  */redis-cli -n 0 keys "prefix*"  Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。  redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。方案二:分两步先查询指定pattern的keys,再通过del key1 key2 key3 ...语句批量删除。在redis的客户端环境中并不支持批量删除www.zgxue.com防采集请勿采集本网。

由于误用插件,某台服务器上的redis实例存在数百万无用的key。为了删除无用数据,上网查找redis批量删除key的方法,发现使用过程中都有问题。经过本人的研究,终于找到redis批量删除key的正确用法。

DEL 删除给定的一个或多个 key,不存在的 key 会被忽略,返回值:被删除 key 的数量 DUMP 序列化给定 key,返回被序列化的值,使用 RESTORE 命令可以将这个值反序列化为 Redis 键 EXISTS 检查给定 key 是否存在 EXPIRE 为给定key设置有效时间,

本文分享最新版Redis批量删除key的方法,希望能帮到遇到同样问题的网友。

在linux中 批量操作redis中的 keys的方法: 1.统计个数: redis中名称含有OMP_OFFLINE的key的个数; src/redis-cli keys "*OMP_OFFLINE*"|wc -l 2.批量删除 批量删除 0号数据库中名称含有OMP_OFFLINE的key: src/redis-cli -n 0 keys "*OMP_OFFL

redis批量删除key

在linux中 批量操作redis中的 keys的方法: 1.统计个数: redis中名称含有OMP_OFFLINE的key的个数; src/redis-cli keys "*OMP_OFFLINE*"|wc -l 2.批量删除 批量删除 0号数据库中名称含有OMP_OFFLINE的key: src/redis-cli -n 0 keys "*OMP_OFFL

网上许多文章和教程给出的redis批量删除key命令是:

java代码怎么正则删除redis的数据,即批量删除符合一定条件的redis数据,现在介绍批量删除已某些字符开头的redis数据: 在Java中连接Redis,并进行操作,首先得加载以JAR包形式存在的Java中的Redis Client,我们这里选择Jedis。以下是使用Jedis

redis-cli KEYS "$PATTERN" | xargs redis-cli DEL

值得注意的点:第一,在redis设置了password的时候,所有关于redis的操作需要输入密码。第二,在windows系统中xargs后面的redis-cli.exe的路径必须是绝对路径。第三,redis批量删除支持正则表达式,可以利用正则表达式简化操作。

在本人的实践中,这条命令存在两个问题:

1.redis-cli KEYS "$PATTERN"的结果会出现编号,不是纯粹的key列表,如下所示:

[root@node1]# redis-cli keys "*"1) ":default:is_blog_installed"2) ":site-options:1-notoptions"

本人用的是Redis 5版本,未测试低版本Redis是否也会添加1),2)这样的编号。可以想到,因为编号的存在,管道后DEL删除的是错误的key;

2.如果key存在空格,管道后面的DEL将无法正确删除。例如key是”123 4566″,传送到管道后面删除,就变成了删除两个key,与预期不符合。

经过一番研究,redis批量删除key的正确命令是:

redis-cli --raw KEYS "$PATTERN" | xargs -I {} redis-cli DEL "{}"

重点有两个,分别解决上述命令存在的问题:

    使用 –raw 参数,去掉结果编号; xargs使用占位符,删除key时将整个结果传过去,避免了空格问题。

改正后的命令在本人的情况下运行正常,就是删除两百多万个key有点慢,花了半个多小时。

redis批量移动key

如果你知道有用key的模式,并且有用key数量很小,可以通过redis批量移动key,然后flushdb的方法快速删除,效率比上文提到的批量删除大量无用key高很多。

操作方法如下:

    批量移动key:redis-cli --raw KEYS "$PATTERN" | xargs -L1 -I{} redis-cli MOVE {} 1,其中命令最后的1是备份数据库的编号; 清空当前数据库:redis-cli flushdb; 还原key:redis-cli -n 1 --raw KEYS "$PATTERN" | xargs -L1 -I{} redis-cli MOVE {} 0

注意清空当前数据库的命令是 flushdb,不能用 flushallflushdbflushall的区别是:flushdb 只会清空当前数据库的数据,而flushall会清空当前redis实例的所有数据。

redis-cli参数

上述命令使用redis-cli工具完成,在编号为0的默认数据库上操作。对于需要密码、远程redis主机的情况,redis-cli有如下有用参数:

-n:操作的数据库;

-a:redis数据库密码

-h:redis主机ip,通过-h可以远程批量删除key

-p:redis端口

更多参数请参考帮助文档。

以上就是redis批量删除key的步骤的详细内容,更多关于redis批量删除key的资料请关注真格学网其它相关文章! 您可能感兴趣的文章:python中redis查看剩余过期时间及用正则通配符批量删除key的方法Redis批量删除KEY的方法Redis如何优雅的删除特定前缀keypython redis 删除key脚本的实例

在linux中 批量操作redis中的2113 keys的方法:1.统计个数:redis中名称5261含有OMP_OFFLINE的key的个数;4102src/redis-cli keys "*OMP_OFFLINE*"|wc -l2.批量删除1653批量删除 0号数据库中名称含有OMP_OFFLINE的key:src/redis-cli -n 0 keys "*OMP_OFFLINE*"|xargs src/redis-cli -n 0 del在redis的客户端环境中并不支持批量删除内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • redis实现多人多聊天室功能
  • redis未授权访问配合ssh key文件利用详解
  • macos上redis的安装与测试操作
  • 详解redis中lua脚本的应用和实践
  • 在cenos系统下安装和配置redis数据库的教程
  • redis中scan命令的深入讲解
  • ubuntu下安装redis的2种方法分享
  • redis中修改配置文件中的端口号 密码方法
  • 超强、超详细redis数据库入门教程
  • redis有序集合类型的操作_动力节点java学院整理
  • 如何批量删除Redis数据库中的Key
  • 如何批量删除Redis下特定pattern的keys?
  • 对于redis的批量删除指定key,有没有好的方法
  • windows下怎么批量删除redis key
  • 如何批量删除Redis下特定pattern的keys
  • 如何批量删除Redis下特定pattern的keys
  • 如何批量删除redis中keys
  • java代码怎么正则删除redis的数据
  • 如何通过表达式删除redis百分之五十key
  • redis怎么删除这个key集
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全mssqlmysqlmariadboracledb2mssql2008mssql2005sqlitepostgresqlmongodbredisaccess数据库文摘数据库其它首页python中redis查看剩余过期时间及用正则通配符批量删除key的方法redis批量删除key的方法redis如何优雅的删除特定前缀keypython redis 删除key脚本的实例redis实现多人多聊天室功能redis未授权访问配合ssh key文件利用详解macos上redis的安装与测试操作详解redis中lua脚本的应用和实践在cenos系统下安装和配置redis数据库的教程redis中scan命令的深入讲解ubuntu下安装redis的2种方法分享redis中修改配置文件中的端口号 密码方法超强、超详细redis数据库入门教程redis有序集合类型的操作_动力节点java学院整理超强、超详细redis数据库入门教程redis常用命令、常见错误、配置技redis操作命令总结redis中5种数据结构的使用场景介64位windows下安装redis教程redis中使用redis-dump导出、导入redis中统计各种数据大小的方法redis常用命令小结让redis在你的系统中发挥更大作用centos 6.6下redis安装配置记录redis中队列消息实现应用解耦的方法在redhat6.4安装redis集群【教程】redis 实现登陆次数限制的思路详解redis cluster集群数据分片机制原理详解redis的慢查询日志redis 实现队列原理的实例详解详解redis数据结构之sdsredis数据的两种持久化方式对比redis设置密码保护的实例讲解利用redis的有序集合实现排行榜功能实例代
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved