我正在考虑使用Heroku Postgres实例,理论上可以有许多同时连接。可以处理许多节点的节点的成本似乎太贵了。
部署Heroku Redis实例来缓存某些数据库查询/结果有助于缓解此问题并节省成本吗?
答案 0 :(得分:0)
您可以考虑以下两种方法。
连接池
您可以使用连接池来限制与数据库的总连接。在向数据库发送请求之前,所有客户端都从池中获取连接。如果客户端无法从池中获取连接,则只需等待其他人释放连接。
但是,此方法可能会导致一些延迟。
<强>缓存强>
您可以使用缓存服务器,例如Redis,用于缓存数据库中的结果。如果结果已写入缓存,则任何后续请求都可以快速从缓存中获取结果。
但是,您应该考虑以下问题。
对数据集的请求是否具有较高的Cache Hit Ratio
?如果它很高,大多数请求的结果都可以缓存,性能也很好。否则,您将收到许多Cache Miss
个请求,并且性能不佳。
您是否关心陈旧数据?由于缓存可能与数据库不一致,因此您可能会从缓存中获取过时数据。如果您的应用程序始终需要新数据,则无法缓存结果。