Fork me on GitHub

【Redis】SpringBoot整合Redis

一、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";
}
}
posted @   这个世界~  阅读(375)  评论(0)    收藏  举报
编辑推荐:
· dotnet 9 通过 AppHostRelativeDotNet 指定自定义的运行时路径
· 如何统计不同电话号码的个数?—位图法
· C#高性能开发之类型系统:从 C# 7.0 到 C# 14 的类型系统演进全景
· 从零实现富文本编辑器#3-基于Delta的线性数据结构模型
· 记一次 .NET某旅行社酒店管理系统 卡死分析
阅读排行:
· 用c#从头写一个AI agent,实现企业内部自然语言数据统计分析
· 三维装箱问题(3D Bin Packing Problem, 3D-BPP)
· Windows上,10分钟构建一个本地知识库
· 使用 AOT 编译保护 .NET 核心逻辑,同时支持第三方扩展
· dotnet 9 通过 AppHostRelativeDotNet 指定自定义的运行时路径
点击右上角即可分享
微信分享提示

目录导航