了解Web缓存(Redis)

时间:2015-10-15 21:13:16

标签: caching redis node-redis

我正在开发一个从API提供商处接收数据的网络应用。现在我需要一种方法来缓存数据,以便再次为相同的数据调用提供程序。

然后我偶然发现Redis似乎符合我的目的,但我并不是100%清楚使用Redis进行缓存的概念。我已经检查了他们的文档,但我并没有真正按照他们的意思去做。

我们假设我刚刚部署了我的网站,我的第一个访问者名为A.由于A是第一个访问的人,我的网站将通过API提供商请求一组新数据,几秒后,页面将加载A想要的数据。

我的网站将此数据缓存到Redis,以便为将会访问同一页面的未来访问者提供服务。

现在我有了第二位访客B.

B点击与A相同的页面网址,因为我的网站将这些数据存储在缓存中,B从缓存中提供,并且加载时间比A经历的要快得多。

我的理解是否符合网络缓存的概念?

我总是考虑按用户进行缓存,因此我在网站上的互动对其他人没有任何影响,但Redis似乎在每个应用程序的基础上工作。

1 个答案:

答案 0 :(得分:4)

是的,您对网络缓存的理解很明显,但根据您的使用情况,它会变得更加复杂。 Redis本质上是一个键值存储。因此,如果您想要应用程序级缓存,理论键/值对将如下所示:

key: /path/to/my/page
value: <html><...whatever...></html>

如果您想要用户级缓存,您的理论密钥只会略有变化:

key: visitorA|/path/to/my/page
value: <html><...whatever...></html>

有意义吗?本质上,键中将有一个标记用于定义用户(但它通常是哈希或其他东西,而不是纯文本字符串)。

为不同的Web开发框架和内容管理系统编写了redis客户端库,它们将定义如何处理缓存(即特定于用户或特定于应用程序)。如果您正在编写自定义Web应用程序,则可以选择应用程序级缓存或用户级缓存,并使用缓存执行任何其他操作。