1、首次请求数据时,先从缓存中获取,如果没有,则继续向数据库中获取。获取到数据后,将数据保存到缓存中。再次请求数据,一样先从缓存中获取,成功获取,“缓存命中”。多次请求中,命中次数占全部请求次数的比例,叫“命中率”。如果数据源的数据发生变化,而缓存中的数据没有更新,就会导致“缓存数据不一致”。
2、Web请求过程:客户端浏览器>网关服务器>Web服务器>数据库服务器,这些节点都可以设置缓存,缓存数据以键值对的方式储存在节点的内存中。
3、从图中可以看出,如果命中缓存,可以节省查询读取数据库的过程,可以明显提升请求效率。
4、常用的缓存包括:客户端响应缓存、服务端响应缓存、内存缓存、分布式缓存
【客户端响应缓存】
新建webapi程序,新增TestController,响应内容缓存60s
[Route("api/[controller]")]
[ApiController]
public class TestController : ControllerBase
{
[HttpGet]
[ResponseCache(Duration = 60)]
public DateTime Now()