Cacheable sync
时间: 2023-10-11 09:13:36 浏览: 81
在使用缓存的时候,可以通过设置@Cacheable的sync属性来实现缓存的同步。sync属性的默认值为false,表示在多线程环境下,多个线程可以同时进入计算,并且可能导致多次计算,而违反了缓存的目的。但是当sync属性设置为true时,底层会将缓存锁住,只有一个线程可以进入计算,其他线程则会被堵塞,直到返回结果更新到缓存中。这样可以保证在多线程环境下只计算一次,并且将结果更新到缓存中。比如在使用@Cacheable注解时可以使用sync属性来实现缓存的同步,例如:@Cacheable(cacheNames="books", key="#map['bookid'].toString()", sync=true) public Book findBook(Map<String, Object> map);<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [ck-jesse#l2cache#二级缓存最佳实践用法1](https://download.csdn.net/download/weixin_35780601/86259627)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [spring cache相关注解介绍 @Cacheable、@CachePut、@CacheEvict](https://blog.csdn.net/yb223731/article/details/107619718)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文