简短的问题。
我正在使用 redis-py 在我的 redis 服务器上设置一些键,但我遇到了一些奇怪的行为。
我怀疑它与 StrictRedis.pipe 有关。我有多个线程将命令推送到同一个管道,过了一会儿我在这个管道上运行执行并运行它的所有命令。我想知道管道是否是线程安全的?我可以在没有任何同步机制的情况下从多个线程推送命令吗?
谢谢你。
简短的问题。
我正在使用 redis-py 在我的 redis 服务器上设置一些键,但我遇到了一些奇怪的行为。
我怀疑它与 StrictRedis.pipe 有关。我有多个线程将命令推送到同一个管道,过了一会儿我在这个管道上运行执行并运行它的所有命令。我想知道管道是否是线程安全的?我可以在没有任何同步机制的情况下从多个线程推送命令吗?
谢谢你。
根据文档,看起来不是:
“在线程之间传递 PubSub 或 Pipeline 对象是不安全的。”
因此,我假设您需要某种同步机制。我不得不承认我没有测试过任何东西,但如果我要实现一个,我会尝试使用Multithreaded queue。
可能有更好的方法来做到这一点,因为我不是 python 专家。
希望这会有所帮助