springboot 整合redis

配置文件

spring:
  redis:
    # Redis数据库索引(默认为0)
    database: 0
    # Redis服务器地址
    host: 192.168.133.128
    # Redis服务器连接端口
    port: 6379
    # Redis服务器连接密码(默认为空)
    password: redis
    jedis:
      pool:
        # 连接池最大连接数(使用负值表示没有限制)
        max-active: 8
        # 连接池最大阻塞等待时间(使用负值表示没有限制)
        max-wait: -1
        # 连接池中的最大空闲连接
        max-idle: 8
        # 连接池中的最小空闲连接
        min-idle: 0
        # 连接超时时间(毫秒)
        timeout: 10000

redis工具类

@Component
public class RedisUtils {
    @Autowired
    private StringRedisTemplate stringRedisTemplate;

    public void set(String key, Object object, Long time) {
        // 让该方法能够支持多种数据类型存放
        if (object instanceof String) {
            setString(key, object);
        }
        // 如果存放时Set类型
        if (object instanceof Set) {
            setSet(key, object);
        }
        // 设置有效期
        if (time != null) {
            stringRedisTemplate.expire(key, time, TimeUnit.SECONDS);
        }

    }

    public void setString(String key, Object object) {
        String value = (String) object;
        // 存放string类型
        stringRedisTemplate.opsForValue().set(key, value);
    }

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

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

}

测试

@RestController
public class RedisController {
    @Autowired
    private RedisUtils redisUtils;

    @GetMapping("test-set-string")
    public String testSetString(String key, String value) {
        redisUtils.set(key, value,60L);
        return "success set string";
    }

    @GetMapping("test-get-string")
    public String testGetString(String key) {
        return redisUtils.getString(key);
    }
}

代码:springboot-redis

相关推荐