SpringBoot---------整合Redis

目录

第一步:引入依赖

第二步:配置Redis信息

[第三步:选择Spring Data Redis进行操作Redis数据库](#第三步:选择Spring Data Redis进行操作Redis数据库)

①操作String类型数据(用的少)

②操作Object类型数据(重要!!!)

③操作Hash,Set,List类型数据


第一步:引入依赖

XML 复制代码
        <!--SpringDataRedis-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>

        <!--common-pool-->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-pool2</artifactId>
        </dependency>

        <!--Jackson依赖-->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
        </dependency>

第二步:配置Redis信息

XML 复制代码
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://192.168.136.132/mydb
    username: root
    password: 1234
    type: com.alibaba.druid.pool.DruidDataSource
    
    
  redis:
    database: 0
    host: 192.168.136.132
    port: 6379
    password: pz030812...
    lettuce:
      pool:
        max-active: 8
        max-idle: 8
        min-idle: 0
        max-wait: 100ms

第三步:选择Spring Data Redis进行操作Redis数据库

①操作String类型数据(用的少)

java 复制代码
@Autowired
private StringRedisTemplate stringRedisTemplate;

@GetMapping("/redismessge")
    public JsonResult Redismsg(){
        //操作String数据

        //增,改
        stringRedisTemplate.opsForValue().set("jxxy","计科一班");
        //查
        String jxxy = stringRedisTemplate.opsForValue().get("jxxy");
        System.out.println("jxxy = " + jxxy);
        //删
        stringRedisTemplate.opsForValue().getAndDelete("jxxy");
        return new JsonResult();
    }

②操作Object类型数据(重要!!!)

java 复制代码
    @Autowired
    private StringRedisTemplate stringRedisTemplate;
    @Autowired
    private RedisTemplate redisTemplate;

    //序列化工具
    private static final ObjectMapper mapper= new ObjectMapper();

    @PostMapping("/redismessge_1")
    public JsonResult Redismsg_1(@RequestBody Student student) throws JsonProcessingException {

        //使用自动序列化
        redisTemplate.opsForValue().set("jxxy_01",student);

        Object jxxy_01 = redisTemplate.opsForValue().get("jxxy_01");
        System.out.println("jxxy_01 = " + jxxy_01);


        //手动序列化
        String json = mapper.writeValueAsString(student);
        stringRedisTemplate.opsForValue().set("jxxy_02",json);

        json = stringRedisTemplate.opsForValue().get("jxxy_02");
        Student jxxy_02 = mapper.readValue(json, Student.class);
        System.out.println("jxxy_02 = " + jxxy_02);


        return new JsonResult();
    }

postman发送请求:

idea输出数据:

注:自动序列化和手动序列化的区别:如果单在java客户端看的话,二者并无明显区别,但是从Redis数据库中看的话就会发现在自动序列化的方式在redis数据库中每个数据前面都会增加一串地址,而手动的则是清晰的数据;而且使用Redistemplate时,对象类要加 implements Serializable


先看自动序列化redis的存储情况:

再看手动序列化redis的存储情况:

③操作Hash,Set,List类型数据

这几类数据用的比较少,可以去Redis基础讲解中查看,这里就不做代码演示

学习路线:

基础框架SSM-----------spring篇

SpringBoot---------Lombook

SpringBoot---------@Value,@ConfigurationProperyies以及多环境开发配置

SpringBoot---------整合Junit

SpringBoot---------整合Mybatis

SpringBoot---------整合Mybatisplus

SpringBoot---------整合Redis

相关推荐
程序员码歌2 小时前
明年35岁了,如何破局?说说心里话
android·前端·后端
橙*^O^*安2 小时前
Go 语言基础:变量与常量
运维·开发语言·后端·golang·kubernetes
BillKu2 小时前
推荐 Eclipse Temurin 的 OpenJDK
java·ide·eclipse
Morri32 小时前
[Java恶补day53] 45. 跳跃游戏Ⅱ
java·算法·leetcode
悟能不能悟2 小时前
eclipse怎么把项目设为web
java·eclipse
工程师小星星2 小时前
Golang语言的文件组织方式
开发语言·后端·golang
乂爻yiyao2 小时前
java 代理模式实现
java·开发语言·代理模式
2301_770373733 小时前
Java集合
java·开发语言
哈喽姥爷3 小时前
Spring Boot---自动配置原理和自定义Starter
java·spring boot·后端·自定义starter·自动配置原理
小蒜学长4 小时前
基于springboot 校园餐厅预约点餐微信小程序的设计与实现(代码+数据库+LW)
数据库·spring boot·微信小程序