Redis可以帮助规避数据库连接限制

时间:2018-03-02 22:37:45

标签: heroku database-design redis architecture

我正在考虑使用Heroku Postgres实例,理论上可以有许多同时连接。可以处理许多节点的节点的成本似乎太贵了。

部署Heroku Redis实例来缓存某些数据库查询/结果有助于缓解此问题并节省成本吗?

1 个答案:

答案 0 :(得分:0)

您可以考虑以下两种方法。

连接池

您可以使用连接池来限制与数据库的总连接。在向数据库发送请求之前,所有客户端都从池中获取连接。如果客户端无法从池中获取连接,则只需等待其他人释放连接。

但是,此方法可能会导致一些延迟。

<强>缓存

您可以使用缓存服务器,例如Redis,用于缓存数据库中的结果。如果结果已写入缓存,则任何后续请求都可以快速从缓存中获取结果。

但是,您应该考虑以下问题。

  1. 对数据集的请求是否具有较高的Cache Hit Ratio?如果它很高,大多数请求的结果都可以缓存,性能也很好。否则,您将收到许多Cache Miss个请求,并且性能不佳。

  2. 您是否关心陈旧数据?由于缓存可能与数据库不一致,因此您可能会从缓存中获取过时数据。如果您的应用程序始终需要新数据,则无法缓存结果。