我正在寻找使用Heroku Postgres实例,理论上可以有许多同时连接。可以处理许多节点的节点的成本似乎太贵了。
是否部署Heroku Redis实例来缓存某些数据库查询/结果有助于缓解此问题并节省成本?
您可以考虑以下两种方法。
连接池
您可以使用连接池来限制与数据库的总连接。在向数据库发送请求之前,所有客户端都从池中获取连接。如果客户端无法从池中获取连接,则只需等待其他人释放连接。
但是,此方法可能会导致一些延迟。
高速缓存
您可以使用缓存服务器,例如Redis,用于缓存数据库中的结果。如果结果已写入缓存,则任何后续请求都可以快速从缓存中获取结果。
但是,您应该考虑以下问题。
Cache Hit Ratio
?如果它很高,大多数请求的结果都可以缓存,性能也很好。否则,您将获得许多Cache Miss
请求,并且性能很差。