1. 程式人生 > >spring boot配置 Redis

spring boot配置 Redis

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),所以有快取功能能減少資料庫的查詢。

在這裡插入圖片描述