【 springboot】springboot 集成redis

约定不等于承诺〃 2024-02-19 18:50 236阅读 0赞

1、在pom.xml 中增加相关的jar依赖

  1. <!--加载springboot redis包-->
  2. <dependency>
  3. <groupId>org.springframework.boot</groupId>
  4. <artifactId>spring-boot-starter-data-redis</artifactId>
  5. </dependency>

2、在springboot核心配置文件application.properties 中配置redis 的链接信息

  1. # 配置redis 的连接信息
  2. spring.redis.host=192.168.25.150
  3. spring.redis.port=6379
  4. spring.redis.password=123456

3、配置完上面的步骤,springboot将自动配置redis Template,在需要操作redis的类中注入redis template

例如我们在查询的时候要缓存一下:
实现层代码如下:

  1. package com.cjp.springboot.Service.impl;
  2. import com.cjp.springboot.Service.OrderSertvice;
  3. import com.cjp.springboot.mapper.tb_OrderMapper;
  4. import com.cjp.springboot.model.tb_Order;
  5. import org.junit.Test;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.data.redis.core.RedisTemplate;
  8. import org.springframework.stereotype.Service;
  9. import org.springframework.transaction.annotation.Transactional;
  10. import java.util.List;
  11. //不要忘记加上service注解
  12. @Service
  13. public class OrderSertviceimpl implements OrderSertvice {
  14. @Autowired
  15. private tb_OrderMapper orderMapper;// 这里的orderMapper会爆红,这是idea的问题,不用管,或者将其改成警告即可
  16. // 注入springboot 自动配置好的redis模板
  17. @Autowired
  18. private RedisTemplate<Object,Object> redisTemplate;
  19. @Override
  20. public List<tb_Order> getAllOrder() {
  21. return orderMapper.getAllOrder();
  22. }
  23. // @Transactional
  24. @Override
  25. public int update() {
  26. tb_Order order =new tb_Order();
  27. order.setOrderId((long) 1);
  28. order.setReceiverAreaName("金燕办公-update");
  29. int update=orderMapper.updateByPrimaryKey(order);
  30. System.out.println(update);
  31. // 因为除数不能为0,所以会有异常,所以上一步会回滚
  32. int a =10/0;
  33. return update;
  34. }
  35. // 用来测试redis连接
  36. @Override
  37. public List<tb_Order> TestRedis() {
  38. List<tb_Order> allOrder=(List<tb_Order>) redisTemplate.opsForValue().get("allOrder");
  39. if (null==allOrder){
  40. // 缓存为空,则查询数据
  41. allOrder= orderMapper.getAllOrder();
  42. // 将数据放到redis中
  43. redisTemplate.opsForValue().set("allOrder",allOrder);
  44. }
  45. System.out.println(allOrder);
  46. return allOrder;
  47. }
  48. }

项目代码访问:https://github.com/NerlCheng/springboot/tree/master/02-springbootmybatis

4、项目启动,如下报错

在这里插入图片描述
出现这个错误是因为没有实现order 数据的序列化,否则无法存储到redis中,另外如果不实现序列话,在网络传输的时候也有问题。为此我们需要在model层实现序列化接口:
在这里插入图片描述
重启启动即可正常访问了。

发表评论

表情:
评论列表 (有 0 条评论,236人围观)

还没有评论,来说两句吧...

相关阅读

    相关 spring集成redis

        sprig集成redis,我的项目架构是springMVC+spring+ibatis 用maven管理 ,下面看代码 1. 在pom文件引入redis依赖包

    相关 Spring集成Redis

    最近在做一个关于群聊的项目,由于聊天要求实时性,不可能直接访问数据库,所以使用了Redis来做缓存,这里将使用过程中遇到的问题记录一下。 使用Redis之前需要合理设计存储

    相关 springboot-集成redis

    重点是添加依赖和配置,redis具体更详情的使用见redis相关章节 1. 添加依赖 <dependency>             <groupId>org.spr

    相关 springboot集成Redis

    由于之前在项目中集成了身份验证以及权限功能,所以在请求操作时会有大量数据库读操作来获取用户的角色以及所拥有的权限,这对于数据库来说是一个巨大的性能开支,所以我打算尝试使用red

    相关 集成Redis缓存

    一 简介 1 场景 由于首页数据变化不是很频繁,而且首页访问量相对较大,所以我们有必要把首页数据缓存到redis中,减少数据库压力和提高访问速度。 2 Redi