首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >redis key命令删除数据,但scan命令不删除数据

redis key命令删除数据,但scan命令不删除数据
EN

Stack Overflow用户
提问于 2016-10-27 13:29:14
回答 2查看 582关注 0票数 0
代码语言:javascript
复制
redis-cli -s /data/redis/redis.sock --scan --pattern "*abcd|6128*" | xargs -L 100 redis-cli -s /data/redis/redis.sock DEL

上面的命令没有从redis中删除adta,并给出了以下输出

代码语言:javascript
复制
(integer) 0

虽然key命令可以完美地工作

代码语言:javascript
复制
 redis-cli -s /data/redis/redis.sock KEYS 'abcd|6291*' | xargs redis-cli -s /data/redis/redis.sock DEL;

是不是我做错了什么?

EN

回答 2

Stack Overflow用户

发布于 2016-11-01 22:13:15

而是尝试使用-L 1xargs。对我很管用。

redis-cli -s /data/redis/redis.sock --scan --pattern "*abcd|6128*" | xargs -L 1 redis-cli -s /data/redis/redis.sock DEL

顺便说一句,在生产环境中应该避免使用KEYS,因为它是一个阻塞命令。

票数 1
EN

Stack Overflow用户

发布于 2016-10-29 21:50:09

扫描仅适用于某些关键字(默认情况下,每次迭代10个关键字)。它返回一个偏移量,以继续运行扫描,直到您达到偏移量0。然后,您已经对所有键进行了采样。文档中提供了更多详细信息:http://redis.io/commands/scan

另一方面,密钥在一次传递中对db中的所有密钥进行采样。它也是由于redises单线程架构造成的阻塞,这可能会对其他客户端的性能造成不良影响。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40276773

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档