spring整合redis

1.导入依赖

复制代码
<!-- spring-data-redis 依赖-->
<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-redis</artifactId>
    <version>2.7.18</version>
</dependency>
<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>3.5.2</version>
</dependency>

2.导入配置文件

3.修改配置信息

复制代码
配置文件:redis.properties

4.测试:

复制代码
@Test
    public void test() {
        // 使用RedisTemplate的opsForValue()方法获取操作字符串值的ValueOperations接口实例
        redisTemplate.opsForValue().set("name", "jack");

        // 使用opsForValue()获取的实例,调用set方法将键为"name"的值设置为"jack"
        // 这行代码会将字符串"jack"存储在Redis数据库中,键为"name"

        String name = (String) redisTemplate.opsForValue().get("name");

        // 使用opsForValue()获取的实例,调用get方法获取键为"name"的值
        // 这行代码从Redis数据库中检索键为"name"的值,并将其转换为String类型,然后赋值给变量name
        // 如果键"name"存在,name变量将被赋值为"jack";如果不存在,name将为null
        System.out.println(name);
    }
    //数据类型:object
    @Test
    public void test1() {
        User user = new User();
        user.setUsercode("admin");
        user.setUsername("管理员");
        redisTemplate.opsForValue().set("user", user);
        User loginuser = (User) redisTemplate.opsForValue().get("user");
        System.out.println(loginuser);
    }

出现下情况(序列化/反序列化):

spring-redis.xml 下解掉注释

4.在项目中使用redis作为缓存工具

案例(整合前):

复制代码
@Override
    public User selectByPrimaryKey(Long id) {
        return userMapper.selectByPrimaryKey(id);
    }

1.将部分数据缓存到redis中

1.1注入RedisTemplate对象

1.2修改后的代码

复制代码
@Override
public User selectByPrimaryKey(Long id) {
    //从缓存中读取user对象
    User user = (User) redisTemplate.opsForValue().get("object:user:"+id);//先查redis(缓存工具)
    if (user == null) {
        //没读取到就从数据库中读取
        System.out.println("从数据库读取");
        user=userMapper.selectByPrimaryKey(id);
        //将查到的user存入缓存工具当中redis
        redisTemplate.opsForValue().set("object:user:"+id, user);
    }
    return user;
}

2.结果展示

总结:加快我们的读取速度

相关推荐
小松加哲8 分钟前
Spring MVC 核心原理全解析
java·spring·mvc
Ulyanov27 分钟前
《PySide6 GUI开发指南:QML核心与实践》 第二篇:QML语法精要——构建声明式UI的基础
java·开发语言·javascript·python·ui·gui·雷达电子对抗系统仿真
码界筑梦坊30 分钟前
357-基于Java的大型商场应急预案管理系统
java·开发语言·毕业设计·知识分享
云烟成雨TD43 分钟前
Spring AI Alibaba 1.x 系列【31】集成 Studio 模块实现可视化 Agent 调试
java·人工智能·spring
014-code1 小时前
Spring Data JPA 实战指南
java·spring
安小牛1 小时前
Android 开发汉字转带声调的拼音
android·java·学习·android studio
聚美智数1 小时前
企业实际控制人查询-公司实控人查询
android·java·javascript
zb200641201 小时前
SpringBoot详解
java·spring boot·后端
SoaringHeart1 小时前
Flutter进阶:用OverlayEntry 实现所有弹窗效果
前端·flutter
AI人工智能+电脑小能手2 小时前
【大白话说Java面试题】【Java基础篇】第7题:HashMap的get流程是什么
java·后端·面试·哈希算法·散列表·hash-index·hash