springboot Redis 緩衝

來源:互聯網
上載者:User

標籤:pre   類型   enable   緩衝   cache   預設   names   mes   tar   

可以使用記憶體作為緩衝,也可以使用 Redis 作為緩衝,記憶體的弊端是叢集的多個執行個體不發同步

1,添加依賴

<dependency>         <groupId>org.springframework.boot</groupId>          <artifactId>spring-boot-starter-data-redis</artifactId></dependency>

2,設定檔中配置 Redis 資料來源

spring.cache.redis.time-to-live:3600s  # 預設不到期,設定一個時間表示到期時間redis.host=localhost # ipredis.port=6379 # 連接埠redis.jedis.pool.max-active=5 # 串連池redis.jedis.pool.max-idle=10redis.jedis.pool.max-wait=10000

3,啟動類添加 @EnableCaching 註解

4,在方法上添加 @Cacheable/@CacheEvict/@CachePut 註解或在類上添加 @CacheConfig 註解

@Cacheable 擷取緩衝(不運行方法),如果沒有就運行方法取得並把值放入緩衝
@CacheEvict 刪除緩衝(這個方法每次都會執行,然後去通過方法的傳回值去查,有就刪除)
@CachePut 更新緩衝(這個方法也是每次都執行,通過方法傳回值去查,如果有就更新,沒有就添加)
@CacheConfig 這個是寫在類上面的,用於簡化上面3個註解

樣本:
樣本1:@Cacheable(cacheNames="user", key="#id")public User getUserById(int id){}樣本2:@CachePut(cacheNames="user", key="#user.id")public User updateUserById(User user){}樣本3:@CacheEvict(cacheNames="user")public User deleteUserById(int id){}// 如果參數是基本類型,那麼 key 預設就是他,比如 樣本3 中沒有寫 key,其實和 樣本1 是一樣的樣本4:@CacheConfig("user")public class UserService{  @Cacheable  public User getUserById(int id){}  @CachePut(key="#user.id")   public User updateUserById(User user){}}
注意:和非同步執行類似,只能在外部調用才會生效

 

springboot Redis 緩衝

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.