具有多个同时使用的单个Redis实例

时间:2019-05-27 21:54:34

标签: flask redis celery flask-socketio

所以我知道redis是一个内存中的数据存储,但是我对幕后的了解并不多。

我的问题是,如果我有三个单独的用途,例如python-socketio启用套接字服务器的多个实例,Celery则将任务发送到另一个微服务(也将使用相同的redis实例),只是一个标准的subscriber来监听发出的通知,我可以对所有三个任务使用相同的redis实例,还是会在不同数据之间发生冲突(例如,芹菜错误地解释了对python的调用-socketio作为任务)?

1 个答案:

答案 0 :(得分:2)

这取决于您的数据流向,关于每个组件及其关系之间的数据流向的问题尚不清楚。

如果这些消息之间没有关系或依赖性,则可以通过将消息存储到同一redis实例中的不同数据库中来避免冲突。

或者,如果您需要对所有数据库使用相同的数据库,则可以为Redis键使用namespaces aka前缀,以确保不会发生键冲突。这是Redis键部分下有关how to name keys的更多信息。

但是,这不能扩展以让一个实例来处理此问题,但仍然取决于您拥有多少流量以及您到底想实现什么。

请留下评论,以防万一,否则我误解了您的问题