【Redis】SpringBoot整合Redis

1、Maven依賴

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

2、配置文件

Redis中有16庫默認鏈接是0,假設公司有多個不一樣分佈式項目,可是咱們如今只有一個Redis以項目方式區分不一樣的庫。每一個項目鏈接是相同,可是庫不一樣。SpringBoot能夠經過配置yml的方式來修改保存到哪個庫中:java

spring:
  redis:
    database: 0 #Redis中默認有16個庫,此處配置使用第0個庫
    host: 132.232.44.194
    port: 6379
    password: 123456
    jedis:
      pool:
        max-active: 8
        max-wait: -1
        max-idle: 8
        min-idle: 0
    timeout: 10000

3、Service

@Component
public class RedisService {

@Autowired
private StringRedisTemplate stringRedisTemplate;

public void set(String key, Object object, Long time) {
    // 存放String 類型
    if (object instanceof String) {
        setString(key, object);
    }
    // 存放 set類型
    if (object instanceof Set) {
        setSet(key, object);
    }
    // 設置有效期 以秒爲單位
    stringRedisTemplate.expire(key, time, TimeUnit.SECONDS);
}

public void setString(String key, Object object) {
    // 若是是String 類型
    String value = (String) object;
    stringRedisTemplate.opsForValue().set(key, value);
}

public void setSet(String key, Object object) {
    Set<String> value = (Set<String>) object;
    for (String oj : value) {
        stringRedisTemplate.opsForSet().add(key, oj);
    }
}

public String getString(String key) {
    return stringRedisTemplate.opsForValue().get(key);
}

}

4、Controller

@RestController
public class IndexControler {

@Autowired
private RedisService redisService;

@RequestMapping("/setString")
public String setString(String key, String value) {
    redisService.set(key, value, 60l);
    return "success";
}

@RequestMapping("/getString")
public String getString(String key) {
    return redisService.getString(key);
}

@RequestMapping("/setSet")
public String setSet() {
    Set<String> set = new HashSet<String>();
    set.add("zhangsan");
    set.add("lisi");
    redisService.setSet("setTest", set);
    return "success";
}
}
相關文章
相關標籤/搜索