Spring Boot整合Redis實戰操作
最近在使用Spring Boot,發現其功能真是強大,可以快速的整合很多的元件功能,非常方便:
今天就來介紹下,如何整合Redis。
定義
Redis 是一個高效能的key-value資料庫。它支援儲存的value型別很多,包括string(字串)、list(連結串列)、set(集合)、zset(sorted set –有序集合)和hash(雜湊型別)。
以下是Redis的一些優點。
異常快 - Redis非常快,每秒可執行大約110000次的設定(SET)操作,每秒大約可執行81000次的讀取/獲取(GET)操作。
支援豐富的資料型別 - Redis支援開發人員常用的大多數資料型別,例如列表,集合,排序集和雜湊等等。這使得Redis很容易被用來解決各種問題,因為我們知道哪些問題可以更好使用地哪些資料型別來處理解決。
操作具有原子性 - 所有Redis操作都是原子操作,這確保如果兩個客戶端併發訪問,Redis伺服器能接收更新的值。
多實用工具 - Redis是一個多實用工具,可用於多種用例,如:快取,訊息佇列(Redis本地支援釋出/訂閱),應用程式中的任何短期資料,例如,web應用程式中的會話,網頁命中計數等。
如何搭建?
一.加入Redis相關依賴
二、application.properties中加入redis相關配置
在@Configuration或者整合了這個註解的註解標識的類中宣告一個Redis的bean,本例是在入口類上宣告的Bean:
在Controller裡注入StringRedisTemplate:
啟動瀏覽器訪問:
以上是手動進行redis的操作,那如何進行自動的的快取操作呢?
在啟動類中新增註解
@EnableCaching會為每個bean中被 @Cacheable, @CachePut and @CacheEvict修飾的public方法進行快取操作。
快取的用法
這個方法在userId相同形同的情況下,第一次呼叫的時候會執行方法,以後每次在呼叫的時候會讀取快取中的資料。
快取的註解介紹:
@Cacheable
這個註解,會每次先檢查是否執行過這個方法,在從快取資料庫中檢視key是否相等,如果找到了,從快取中讀取,沒有匹配的那麼執行該方法,將結果快取。 順便在此給大家推薦一個Java架構方面的交流學習群:698581634,進群即可獲取Java架構師資料:有Spring,MyBatis,Netty原始碼分析,高併發、高效能、分散式、微服務架構的原理,JVM效能最佳化這些成為架構師必備的知識體系,群裡一定有你需要的資料,大家趕緊加群吧。
快取都是透過key-value進行儲存的,value或cacheNames必須指定(value是cacheNames的別名),指定多個value用(value = {"value1", "value2"})如果沒有指定key,spring會提供一個預設的KeyGenerator,這個KeyGenerator根據引數生成key,如果方法沒有引數返回KeyGenerator.EMPTY,如果有一個引數返回這個例項,如果有多個引數返回包含這些引數的SimpleKey。可以透過繼承CachingConfigurerSupport自己指定KeyGenerator,類上加@Configuration註解。也可以像上面那樣自己指定key,需要了解SPEL表示式。
多執行緒的情況下,可能同時會有多個執行緒同時進入一個沒被快取過的方法,這樣會導致多個執行緒都會執行一遍方法,sync="true"會將第一次計算返回值的這個方法lock,計算完成後將結果快取
備註:Redis最為常用的資料型別主要有以下:
-
String
-
Hash
-
List
-
Set
-
Sorted set
-
pub/sub
-
Transactions
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31545684/viewspace-2218597/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Spring Boot 整合 Elasticsearch 實戰Spring BootElasticsearch
- Spring Boot整合RedisSpring BootRedis
- Spring Boot 整合redisSpring BootRedis
- Spring-Boot整合RedisSpringbootRedis
- spring boot(三)整合 redisSpring BootRedis
- Spring Boot 專案整合RedisSpring BootRedis
- 持續整合之 Spring Boot 實戰篇Spring Boot
- Spring Boot整合Spring Cloud Task實現批處理操作Spring BootCloud
- Spring Boot 如何快速整合 Redis 哨兵?Spring BootRedis
- Spring Boot系列筆記--整合RedisSpring Boot筆記Redis
- spring boot使用Jedis整合Redis實現快取(AOP)Spring BootRedis快取
- Spring Boot(十三):整合Redis哨兵,叢集模式實踐Spring BootRedis模式
- Spring Boot實戰系列(7)整合Consul配置中心Spring Boot
- MyBatis初級實戰之一:Spring Boot整合MyBatisSpring Boot
- Spring Boot整合Redis叢集(Cluster模式)Spring BootRedis模式
- Spring Boot從入門到實戰:整合通用Mapper簡化單表操作Spring BootAPP
- Spring Boot(六)整合 MyBatis 操作 MySQL 8Spring BootMyBatisMySql
- Spring security(四)-spring boot +spring security簡訊認證+redis整合Spring BootRedis
- Spring Boot功能實戰Spring Boot
- SpringBoot整合Redis實戰Spring BootRedis
- Spring Boot整合Spring Data JPA進行資料庫操作Spring Boot資料庫
- 《Elasticsearch技術解析與實戰》Chapter 1.4 Spring Boot整合ElasticsearchElasticsearchAPTSpring Boot
- Spring Boot整合Spring SecuritySpring Boot
- Spring Boot整合Spring BatchSpring BootBAT
- Spring Boot整合Spring AopSpring Boot
- Spring-Boot-操作-Redis,三種方案全解析!SpringbootRedis
- Go操作Redis實戰GoRedis
- Spring Boot系列十九 Spring boot整合 swaggerSpring BootSwagger
- Spring Boot 2.0(八):Spring Boot 整合 MemcachedSpring Boot
- Spring Boot實戰:模板引擎Spring Boot
- spring-boot-route(十二)整合redis做為快取SpringbootRedis快取
- Spring Boot整合MyBatis實現通用MapperSpring BootMyBatisAPP
- spring boot整合jooqSpring Boot
- Spring Boot整合SocketSpring Boot
- Spring Boot整合rabbitmqSpring BootMQ
- Spring Boot 整合 rabbitmqSpring BootMQ
- Spring Boot 整合 elasticsearchSpring BootElasticsearch
- Spring Boot 整合 dockerSpring BootDocker