您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“spring cloud hystrix請求緩存的示例分析”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“spring cloud hystrix請求緩存的示例分析”這篇文章吧。
Hystrix請求緩存注解
@CacheResult 加入該注解的方法將開啟請求緩存,默認情況下該方法的所有參數作為緩存的key,也就是說只有該方法的所有參數都一致時才會走緩存。
@Service public class UserCacheService { @Autowired private UserFeignClient userFeignClient; /** * @HystrixCommand 的requestCache.enabled 可控制是否支持緩存 * 只有加了@CacheResult才能緩存,即使requestCache.enabled=true * @param id 用戶id * @return 指定的用戶 */ @CacheResult @HystrixCommand(commandProperties = { @HystrixProperty(name="requestCache.enabled",value = "true") }) public User findUserById(Integer id){ return userFeignClient.findUserById(id); } }
如果requestCache.enabled設置為false,即使加了@CacheResult,緩存也不起作用。
@CacheKey 通過該注解可以指定緩存的key
@CacheResult @HystrixCommand(commandProperties = { @HystrixProperty(name="requestCache.enabled",value = "true") }) public User findUserByIdAndName(@CacheKey Integer id,String name){ return userFeignClient.findUserById(id); }
上面的代碼我們用@CacheKey修飾了id字段,說明只要id相同的請求默認都會走緩存,與name字段無關,如果我們指定了@CacheResult的cacheKeyMethod屬性,則@CacheKey注解無效
@CacheRemove 該注解的作用就是使緩存失效
/** * 通過@CacheRemove 注解指定當調用findUserById時將此方法的緩存刪除 * @param id 用戶id * @param name 用戶姓名 * @return 指定的用戶 */ @CacheResult @CacheRemove(commandKey = "findUserById") @HystrixCommand(commandProperties = { @HystrixProperty(name="requestCache.enabled",value = "true") }) public User findUserByIdAndName2(@CacheKey Integer id,String name){ return userFeignClient.findUserById(id); }
以上是“spring cloud hystrix請求緩存的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。