redis-cli -s /data/redis/redis.sock --scan --pattern "*abcd|6128*" | xargs -L 100 redis-cli -s /data/redis/redis.sock DEL上面的命令没有从redis中删除adta,并给出了以下输出
(integer) 0虽然key命令可以完美地工作
redis-cli -s /data/redis/redis.sock KEYS 'abcd|6291*' | xargs redis-cli -s /data/redis/redis.sock DEL;是不是我做错了什么?
发布于 2016-11-01 22:13:15
而是尝试使用-L 1的xargs。对我很管用。
redis-cli -s /data/redis/redis.sock --scan --pattern "*abcd|6128*" | xargs -L 1 redis-cli -s /data/redis/redis.sock DEL
顺便说一句,在生产环境中应该避免使用KEYS,因为它是一个阻塞命令。
发布于 2016-10-29 21:50:09
扫描仅适用于某些关键字(默认情况下,每次迭代10个关键字)。它返回一个偏移量,以继续运行扫描,直到您达到偏移量0。然后,您已经对所有键进行了采样。文档中提供了更多详细信息:http://redis.io/commands/scan
另一方面,密钥在一次传递中对db中的所有密钥进行采样。它也是由于redises单线程架构造成的阻塞,这可能会对其他客户端的性能造成不良影响。
https://stackoverflow.com/questions/40276773
复制相似问题