【问题标题】:how can I flush all redis nodes through predis?如何通过predis刷新所有redis节点?
【发布时间】:2015-09-15 20:09:52
【问题描述】:

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

【问题讨论】:

    标签: redis predis


    【解决方案1】:

    按模式删除:

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

    【讨论】:

      猜你喜欢
      • 2017-06-06
      • 2016-10-18
      • 1970-01-01
      • 2017-09-18
      • 2013-07-07
      • 2020-05-09
      • 2023-04-03
      • 1970-01-01
      • 2018-04-20
      相关资源
      最近更新 更多