Django会话存储的Redis应该在单独的服务器上运行吗?

时间:2016-03-28 17:37:57

标签: django postgresql redis django-redis

我正在构建一个使用PostgreSQL进行数据存储的Django应用程序,以及使用Django Redis Cache进行Django会话存储的Redis。我还使用RQ进行异步作业队列。我构建了应用程序,以便我的PostgreSQL数据库驻留在单独的服务器上。我有两个问题:

  1. Redis和Django Redis Cache是​​否应该安装在我的Django Web服务器上,因为它们正在处理会话存储,或者我应该将它们安装在我的数据库服务器上,因为它们提供类似数据库的功能吗?
  2. 是否应在Web服务器或数据库服务器上安装RQ?我认为它应该安装在与Redis相同的服务器上,但我不确定。
  3. 感谢。

1 个答案:

答案 0 :(得分:0)

假设你真的只有两台机器可以使用,我会说Web服务器上的Redis和数据库服务器上的RQ。

缓存靠近其消费者,其他地方的非延迟关键RQ。

但是,如果您在调用Redis之前获得了内存缓存,那么我也说要将Redis放在数据库服务器上,以便释放Web服务器的所有可用CPU周期

当然,在一个理想的世界中,这些服务中的每一个都是在单独的主机上,你可以调整大小(思考亚马逊风格的无缝升级)。首先,它们甚至可以位于相同的物理主机上,但使用合适的主机别名进行识别,以避免在代码中构建过多的主机假设。

如果可以的话,完全同意码头工人和安赛是很好的方法。