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

相关推荐
侠客行03172 小时前
Mybatis连接池实现及池化模式
java·mybatis·源码阅读
蛇皮划水怪2 小时前
深入浅出LangChain4J
java·langchain·llm
Victor3562 小时前
https://editor.csdn.net/md/?articleId=139321571&spm=1011.2415.3001.9698
后端
Victor3562 小时前
Hibernate(89)如何在压力测试中使用Hibernate?
后端
灰子学技术4 小时前
go response.Body.close()导致连接异常处理
开发语言·后端·golang
老毛肚4 小时前
MyBatis体系结构与工作原理 上篇
java·mybatis
风流倜傥唐伯虎4 小时前
Spring Boot Jar包生产级启停脚本
java·运维·spring boot
Yvonne爱编码5 小时前
JAVA数据结构 DAY6-栈和队列
java·开发语言·数据结构·python
Re.不晚5 小时前
JAVA进阶之路——无奖问答挑战1
java·开发语言
你这个代码我看不懂5 小时前
@ConditionalOnProperty不直接使用松绑定规则
java·开发语言