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.结果展示

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

相关推荐
choke2334 小时前
[特殊字符] Python 文件与路径操作
java·前端·javascript
云飞云共享云桌面5 小时前
高性能图形工作站的资源如何共享给10个SolidWorks研发设计用
linux·运维·服务器·前端·网络·数据库·人工智能
choke2335 小时前
Python 基础语法精讲:数据类型、运算符与输入输出
java·linux·服务器
Deng9452013145 小时前
Vue + Flask 前后端分离项目实战:从零搭建一个完整博客系统
前端·vue.js·flask
岁岁种桃花儿5 小时前
CentOS7 彻底卸载所有JDK/JRE + 重新安装JDK8(实操完整版,解决kafka/jps报错)
java·开发语言·kafka
威迪斯特5 小时前
Flask:轻量级Web框架的技术本质与工程实践
前端·数据库·后端·python·flask·开发框架·核心架构
wuhen_n5 小时前
JavaScript内置数据结构
开发语言·前端·javascript·数据结构
大鱼前端5 小时前
为什么我说CSS-in-JS是前端“最佳”的糟粕设计?
前端
不爱吃糖的程序媛5 小时前
Capacitor:跨平台Web原生应用开发利器,现已全面适配鸿蒙
前端·华为·harmonyos
AC赳赳老秦5 小时前
2026国产算力新周期:DeepSeek实战适配英伟达H200,引领大模型训练效率跃升
大数据·前端·人工智能·算法·tidb·memcache·deepseek