使用SailsJS我正在为应用程序构建后端,并且必须承受许多相同的请求。
请求由Sails控制器端点处理,端点从数据库中获取和处理一些数据,并在响应中发送JSON格式的结果。
相同的请求会产生相同的响应,直到对数据库进行了罕见的更改为止。
为减少数据库查询时间,我可以调整数据库引擎缓存(在我的情况下为MariaDB)。
但是,有什么方法可以完全在服务器端缓存频繁的请求,以排除数据库查询和随后的数据处理?
现有的node.js缓存模块(例如node-cache)可以与Sails一起使用吗?
答案 0 :(得分:3)
您的体系结构渴望缓存。您应该使用redis或memcache。每当发生请求并从db中获取数据时,您都将其插入redis并将响应发送给客户端。下次发生此类请求时,您的服务器将首先调查redis,如果发现那里的数据,它将返回从redis获得的响应,而不是从数据库中查询它(我们称它为cache-hit)。如果万一数据不存在于Redis中,您将查询数据库,但这里有一个问题。要注意的是,您不会直接将响应返回给客户端,而是先将其放入缓存中,然后返回响应(这称为缓存未命中)。 Redis和memcache等是内存中的存储。从缓存中获取数据的成本要比从数据库中获取数据的成本低得多。关于此主题还有进一步的讨论,但是它们会使我们超出范围。
祝你好运。希望能帮助到你。尝试让我们知道。