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

how can I flush all redis nodes through predis?

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

按模式删除:

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 从主节点中删除所有节点(将同步从节点)