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

Moh*_*deh 6 redis predis

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

Moh*_*deh 1

按模式删除:

redis-cli --raw keys "$PATTERN" | xargs redis-cli del
Run Code Online (Sandbox Code Playgroud)

例如:

redis-cli KEYS "prefix:*" | xargs redis-cli DEL
Run Code Online (Sandbox Code Playgroud)

要从一个数据库中删除所有键:

redis-cli flushdb
Run Code Online (Sandbox Code Playgroud)

要从所有数据库中删除所有键:

redis-cli flushall
Run Code Online (Sandbox Code Playgroud)

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