所以我知道 Redis 是一种内存数据存储,但我不太了解其背后的原理。
我的问题是,如果我对它有三种不同的用途,例如 python-socketio启用套接字服务器的多个实例,Celery将任务发送到另一个微服务(它也将使用相同的 redis 实例),并且只是一个标准的 subscriber监听发出的通知,我可以对所有三个任务使用相同的 redis 实例,还是会遇到不同数据之间的冲突(即 celery 将对 python-socketio 的调用误解为任务)?
最佳答案
这取决于你的数据如何流动,问题是数据如何在每个组件之间流动以及它们之间的关系不清楚。
如果这些消息之间没有关系或依赖性,您可以通过将消息存储到同一redis 实例中的不同数据库 来避免冲突。
或者,如果您需要对所有这些数据库使用相同的数据库,您可以为您的 Redis 键使用 namespaces
aka 前缀,以确保不会发生键冲突。这是有关 how to name keys 的更多信息在 Redis 键部分下。
然而,这不能扩展到让一个实例处理它,但这仍然取决于您有多少流量以及您究竟想要实现什么。
如果有什么不清楚或者我误解了你的问题,请发表评论
关于flask - 多个同时使用的单个 Redis 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56332809/