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
虽然键命令工作正常
redis-cli -s /data/redis/redis.sock KEYS 'abcd|6291*' | xargs redis-cli -s /data/redis/redis.sock DEL;
我正在做错什么
答案 0 :(得分:0)
尝试使用xargs
代替-L 1
。为我工作。
redis-cli -s /data/redis/redis.sock --scan --pattern "*abcd|6128*" | xargs -L 1 redis-cli -s /data/redis/redis.sock DEL
BTW,KEYS
应该在生产环境中避免使用,因为它是一个阻塞命令。
答案 1 :(得分:-1)
扫描仅适用于某些键(默认情况下,每次迭代10个键)。它返回一个偏移量以继续运行扫描,直到达到偏移0.然后您已经对所有键进行了采样。更多详细信息,请参阅文档:http://redis.io/commands/scan
另一方面,密钥一次性采样数据库中的所有密钥。由于单线程架构的加密可能会对其他客户端的性能造成影响,因此它也会受阻。