redis批量删除(redis批量删除前缀的key)

本篇文章给大家谈谈redis批量删除,以及redis批量删除前缀的key对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

在不影响性能的情况下,怎么快速批量删除redis数据

业务场景: redis数据切换到Oracle,取消信孝带持久化,redis只做缓存

具体需求: 从redis从库里获得了400w个无过期时间的hashkey,需要在主库中将其删除

矛盾点:

1.如果直接批量删除会导致redis拥塞,影滑芦响正常业务

2.如果每删除一个key,sleep50ms,不会影响业务,但是根据经验要跑两天

最终问题: 在不影响性能的情况下,怎么快速批量删除redis数据?

Redis删key删得飞快,400w也不在话下。我怀疑其实瓶颈在于网络。

如果你是一个一个key删的,每次发送一个命令都会导致客户端等待redis的回复,浪费了大量网络带宽。

可以试试用pipelining/transactions。在不饱和redis端网络带宽的前提下,以最大速度发送命令,然后一次执行。

如果这都不行的话,可以写一个Lua脚本,识别并删除无用的key,发送到redis用eval执行。这样应该不会阻塞网络。

如果这样还是影响业务的话。。终极解决方案是创建一个master/slave,在slave上删除key,而将请求用master处理。删完key之后把slave晋升成master,再将请求转向它。

2014年07月24日回答

滕亦飞1.3k

尝试下 redis 的 eval 命令。

例如删除 old-fashioned: 开头的所有 KEY

eval "redis.call('del', unpack(redis.call('keys','old-fashioned:*')))" 0

如果单次删除性能消耗大,可以考虑分慎穗批删除。

[img]

Redis 如何高效安全删除大 Hash Key

Redis 的大 Key 删除操作会导致 Redis 线程阻塞,网上关于如何删除大 Key 也有一些不少,只有通过 SCAN 扫出 Key 后一个个删除。

这里结合 pipeline 介绍更加高效的操作方法,通过 pipeline 来批量删除。

下裂汪面以每次扫出1000个 field 为例子,每次通过 pipeline 删除1000个 field 来删除一个大 Hash Key。

如果你的 Redis 版本是枝源樱 4.0 以上,可以直接使用 UNLINK 命令非阻塞删除大 Key。

如何猛丛优雅地删除Redis大键

如何有效删除Redis中比较大的Hash Key

【redis】redis批量删除以指定内容开头的key

redis-cli -h xx.xx.xx -p 6379 -a "XXX" keys "扒侍XXX*" | xargs redis-cli -h xx.xx.xx.xx -p 6379 -a "XXX" del

Redis—辩此则—大批量删除redis的key

Redis批量删除key的命令

Redis集群批量删除key

批携棚量删除Key的三种方式

如何批量删除redis中的key

redis可以用数悉纯flushdb/flushall删除所有的key。用del只能根据key去删除。另外一种方式,你可以通过薯咐设置过期陆谨时间让key到期自动删除。

如何批量删除Redis下特定pattern的keys?

方案一颂茄敏:用keys ‘str*’ 列出要删除的key,接linux管道删除(linux命令行执行)

根据通配符查看待删除的 key : redis-cli KEYS "site_msg_999*”

借助 Linux 的 xargs 指令来完成这个动作:

如:

*/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的客户端环境中并不支持批量删除。

关于redis批量删除和redis批量删除前缀的key的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

标签列表