springboot集成Guava緩存


很久沒有寫博客了,這段時間一直忙於看論文,寫論文,簡直頭大,感覺還是做項目比較舒服,呵呵,閑話不多說,今天學習了下Guava緩存,這跟Redis類似的,但是適用的場景不一樣,學習下吧。今天我們主要是springboot集成Guava緩存是如何實現的,且看下面分析:

 1.GuavaCache的介紹

     在多線程高並發場景中往往是離不開cache的,需要根據不同的應用場景來需要選擇不同的cache,比如分布式緩存如redis、memcached,還有本地(進程內)緩存如ehcache、GuavaCache。之前用spring cache的時候集成的是ehcache,但接觸到GuavaCache之后,被它的簡單、強大、及輕量級所吸引。它不需要配置文件,使用起來和ConcurrentHashMap一樣簡單,而且能覆蓋絕大多數使用cache的場景需求!一般而言,對於那些頻繁需要查詢比對的熱點數據,我們采用使用緩存。

Guava的使用:

對於數據量較小的,幾條,幾十條數據,而且需要加緩存的接口較少,這時候我們會采用Cache,建議使用Google提供的guava Cache,它簡單易用的同時,性能也好. 而且線程安全。

GuavaCache畢竟是一款面向本地緩存的,輕量級的Cache,適合緩存少量數據。如果你想緩存上千萬數據,可以為每個key設置不同的存活時間,並且高性能,那並不適合使用GuavaCache.

Redis的使用:

對於那些較大數據量的,或者需要加緩存的接口較多的項目,可以去考慮Redis,memcached等等

  2. 如何使用Cache

     和Map的使用方式差不多,put與get存放key和獲取值。

3、Guava緩存的使用:

一般的cache都會實現的基礎功能包括:

一般緩存會提供一個存儲緩存的容器,該容器實現了存放(Put)和讀取(Get)緩存的接口供外部調用。 緩存通常以<key,value>的形式存在,通過key來從緩存中獲取value。當然容器的大小往往是有限的(受限於內存大小),需要為它設置清除緩存的策略。

在GuavaCache中緩存的容器被定義為接口Cache<K, V>的實現類,這些實現類都是線程安全的,因此通常定義為一個單例。並且接口Cache是泛型,很好的支持了不同類型的key和value。

4、springboot集成guava緩存

SpringBoot為我們提供了自動配置多個CacheManager的實現

功能還是很強大的。

(1)首先添加jar包:

(2)封裝一個cache工具類

(3)在使用的時候調用這個工具類即可。

當然這是很傳統的方式來使用guava緩存,springboot集成guava很多時候是基於注解的開發使用的。

關於springboot中cache的使用,我們可以參考下一位博主的github代碼:

https://github.com/lianggzone/springboot-action/tree/master/springboot-action-cache

這里面集成了ecahce和guava的一些內容。

不得不說springboot的貢獻之大,非常感謝!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM