用于 Django 会话存储的 Redis 应该放在单独的服务器上吗?

Should Redis for Django Session Storage Go on Separate Server?

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

  1. Redis 和 Django Redis Cache 是应该安装在我的 Django Web 服务器上,因为它们处理会话存储还是应该安装在我的数据库服务器上,因为它们提供类似数据库的功能?
  2. RQ应该安装在网络服务器上还是数据库服务器上?我认为它应该与 Redis 安装在同一台服务器上,但我不确定。

谢谢。

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

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

但是,如果您在调用 Redis 之前有一个内存缓存,那么我会建议您也将 Redis 放在数据库服务器上,这样您就可以释放所有可用的 cpu 周期网络服务器。

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

完全同意 docker 如果可以的话,ansible 是不错的选择。