flask - 多个同时使用的单个 Redis 实例

标签 flask redis celery flask-socketio

所以我知道 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/

相关文章:

python - 无法使用 pymongo 客户端在 Docker 中连接 MongoDB 和 Flask

python - Pythonanywhere 上 flask 中 send_file() 的替代方案?

python - 使用 python Flask 进行 Firebase 匿名登录

python - 将 maxtasksperchild 与 eventlet 一起使用

python - 在 flask 路由功能中使用请求模块

node.js - 如何在 Redis 中搜索基于 Json 字符串的值?

redis - 单分片 Redis Cluster 怎么会出现 CROSSLOT 错误?

c# - C# (serviceStack) 的 Redis 客户端 - 文档在哪里?

python - 本地主机上的 Django/Celery 多个队列 - 路由不起作用

python - 如何以编程方式从 Celery 队列中提取项目?