一、Maven依赖

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

二、配置文件

Redis中有16库默认连接是0,假设公司有多个不同分布式项目,但是我们现在只有一个Redis以项目方式区分不同的库。每个项目连接是相同,但是库不同。SpringBoot可以通过配置yml的方式来修改保存到哪一个库中:

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

三、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);
}

}

四、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";
}
}

分类:

技术点:

相关文章: