在高并发场景下,如果缓存中的某条数据失效,就会出现多个相同Key的请求同时查询持久层(DB),并且同时将这个Key对应的value保存到缓存中的情况。不但频繁更新缓存,而且使持久层压力大,出现过载风险。
这种情况可以给缓存对应的数据上锁,其它相同Key的请求等待第一条请求Key从持久层更新好缓存后,再从缓存中查询。但是这种方式会造成其它请求等待,可以根据实际情况决定是否让其它请求查持久层,仅让一条请求更新缓存。
在高并发场景下,如果缓存中的某条数据失效,就会出现多个相同Key的请求同时查询持久层(DB),并且同时将这个Key对应的value保存到缓存中的情况。不但频繁更新缓存,而且使持久层压力大,出现过载风险。
这种情况可以给缓存对应的数据上锁,其它相同Key的请求等待第一条请求Key从持久层更新好缓存后,再从缓存中查询。但是这种方式会造成其它请求等待,可以根据实际情况决定是否让其它请求查持久层,仅让一条请求更新缓存。