在高并发时, 客户端发起请求, 到达服务A , 服务A要三次调用服务B , 为了减缓服务器B的压力, 请求缓存的设计思路是: 在第一次调用服务B后, 将结果缓存到Redis中, 当第二次和第三次进行相同的调用时, 直接从缓存中取到结果, 不再向服务器B发出请求, 从而达到减缓服务B压力的效果.
需要注意的是 , @Cacheable(cacheNames = “key”) 注解不能放在Controller层的接口方法上, 因为客户端每次发来一个请求, 都会开一个新的线程, , @Cacheable是给服务内部调用使用的, 如 服务A多次调用服务B , 不是用在客户端调用服务A的接口.
没有用缓存前:
用了缓存后:
注意必须是相同的调用, 即缓存的key必须一样.