spring boot配置 Redis
阿新 • • 發佈:2018-12-04
pom依賴:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency>
然後在配置檔案 application.properties中加上redis 的配置,見:
https://github.com/lifan2/lfLearn/blob/master/src/main/resources/application.properties
然後是自定義RedisConfig.java,注意該類上有@EnableCaching,見:https://github.com/lifan2/lfLearn/blob/master/src/main/java/com/lflearn/core/redis/RedisConfig.java
redis使用見GitHub上的RedisTestController。
redis的快取如何使用?
析:見下面程式碼
@RequestMapping(value = "/test3", method = RequestMethod.GET) @Cacheable(value = "user-key") public UsersDO test3(String id) { UsersDO user = usersDOMapper.selectByPrimaryKey(Long.valueOf(id)); System.out.println("若下面沒出現“無快取的時候呼叫”字樣且能打印出資料表示測試成功"); return user; }
析:在方法上加上@Cacheable,表示該方法的返回值會被快取到redis中,@Cacheable(value = “user-key”),就會在redis中建立一個ZSet,它的key為 “user-key~keys”,每次呼叫這個介面時,就會生成一個快取的key,例如com.lflearn.core.test.JustControllertest319339678,它是根據RedisConfig.java裡的
keyGenerator()方法規則產生的。在呼叫介面時,有2個redis資料新增,一是把快取的key加到上面的ZSet,二是新增 <快取的key,介面返回值對應的字串>到redis,等下次請求同一個介面(並且引數相同時),會從redis裡把上次快取的返回值取出來,不會再次走方法裡的執行過程(比如這裡的查mysql),所以有快取功能能減少資料庫的查詢。