旁路缓存:Redis是如何工作的

191 阅读2分钟

常用容量和访问性能

image.png

发生缓存命中或缺失时,应用读取数据的情况:

image.png

用 Redis 缓存时,具体来说,我们需要在应用程序中增加三方面的代码:

  1. 当应用程序需要读取数据时,我们需要在代码中显式调用 Redis 的 GET 操作接口,进行查询;
  2. 如果缓存缺失了,应用程序需要再和数据库连接,从数据库中读取数据;
  3. 当缓存中的数据需要更新时,我们也需要在应用程序中显式地调用 SET 操作接口,把更新的数据写入缓存。

读写缓存:

  • 同步直写是指,写请求发给缓存的同时,也会发给后端数据库进行处理,等到缓存和数据库都写完数据,才给客户端返回。这样,即使缓存宕机或发生故障,最新的数据仍然保存在数据库中,这就提供了数据可靠性保证。

  • 异步写回策略,则是优先考虑了响应延迟。此时,所有写请求都先在缓存中处理。等到这些增改的数据要被从缓存中淘汰出来时,缓存将它们写回后端数据库。这样一来,处理这些数据的操作是在缓存中进行的,很快就能完成。只不过,如果发生了掉电,而它们还没有被写回数据库,就会有丢失的风险了。

image.png

关于是选择只读缓存,还是读写缓存,主要看我们对写请求是否有加速的需求。如果需要对写请求进行加速,我们选择读写缓存;如果写请求很少,或者是只需要提升读请求的响应速度的话,我们选择只读缓存。


此文章为8月Day17学习笔记,内容来源于极客时间《redis核心技术与实战》