1. 程式人生 > 其它 >springboot cache redis 快取

springboot cache redis 快取

上一節學習spring的cache快取,介紹了spring快取的基礎:

https://cloud.tencent.com/developer/article/1060047

現在學習使用redis實現快取:

1. 指定provider可以使用配置:

2. redis在這裡充當快取提供者的角色(cache provider),上節中沒有明顯指定cache provider,則會按順序查詢以下的provider:

3. 若沒有查詢到前9類快取的cacheManager,則會使用最後一個simple快取,也就是在記憶體中使用ConcurrentHashMap實現快取。spring官方建議生產環境中勿使用simple快取。上一篇就是使用這個cache provider。

4. 使用redis作為cache provider, 只需要依賴spring-boot-starter-data-redis,spring就會找到redisCacheManager,就可以使用redis作為快取。其中redis的預設配置如下:

spring.redis.host=localhost
spring.redis.port=6379
# 第0個database
spring.redis.database=0
# 預設密碼為空
spring.redis.password=
spring.redis.pool.max-active=8
spring.redis.pool.max-idle=8
spring.redis.pool.min-idle=0
spring.redis.pool.max-wait=-1
spring.redis.ssl=false
spring.redis.timeout=0
#spring.redis.cluster.max-redirects=
#spring.redis.cluster.nodes=

5. windows 搭建 redis

    下載後windows版本的redis如下:

    執行start.bat就是 使用redis.windows.conf配置 來啟動 redis-server.exe

6. 啟動redis後,執行上一節的測試程式碼,就可以看到redis的窗口出現讀寫的輸出。

    注意:實體類一定要實現serializable介面。

    redis在資料庫重啟,或應用程式重啟後,寫在redis中的快取還是存在的,但我們可以通過實體類中的時間來判斷資料是否是從快取中讀取的。

    例如,圖中是我重啟後第一次執行測試程式,但時間顯示卻是五分鐘之前,所以這是從快取中讀取的。