如何通过predis刷新所有redis节点?

时间:2015-06-29 11:23:08

标签: redis predis

我正在尝试测试我的缓存是使用redis群集实现的(群集服务器不是客户端)。 每次运行单元测试时我都必须刷新redis。 当我尝试运行flushdb命令时出现此错误: 不能使用' FLUSHDB'用redis-cluster。 似乎我只能在设置插槽时才能在集群模式下运行flushdb命令,但我不知道该怎么做。 (我已经覆盖了laravel的redis包装器,所以laravel不是这样的情况如果你了解我如何使用predis我可以采用laravel)

1 个答案:

答案 0 :(得分:0)

对于按模式删除:

redis-cli --raw keys "$PATTERN" | xargs redis-cli del

例如:

redis-cli KEYS "prefix:*" | xargs redis-cli DEL

要删除一个数据库中的所有密钥,请执行以下操作:

redis-cli flushdb

要从所有数据库中删除所有密钥:

redis-cli flushall

对于集群模式,您需要使用以下bash脚本: https://gist.github.com/yaud/85e0382d26c189bdf84f0297cd54f479 从主节点上删除所有节点(从节点将被同步)