Spring框架对redis的封装

在Spring框架中
将redis封装成 RedisTemplate 对象来实现对redis的操作,该对象支持所有原生
redis API。在该对象中定义了5种数据结构分别用于操作redis的5种类型的数据

  1. redisTemplate.opsForValue():操作String
  2. redisTemplate.opsForList():操作List
  3. redisTemplate.opsForHash():操作Hash
  4. redisTemplate.opsForSet():操作Set
  5. redisTemplate.opsForZSet():操作有序ZSet

SpringBoot整合redis

导入依赖

   <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency>

配置文件的书写(使用yml文件)

在服务层中引入RedisTemplate类(自动注入)

用于将数据库中查询的数据写入内存中

package pringbootmybatis.demo.service.impl;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import pringbootmybatis.demo.entity.Book;
import pringbootmybatis.demo.mapper.BookMapper;
import pringbootmybatis.demo.service.BookService;import java.util.List;/*** @author Una* @date 2022/8/22 13:40* @description:*/@Service
public class BookServiceImpl implements BookService {@Autowiredprivate BookMapper bookMapper;@Autowiredprivate RedisTemplate redisTemplate;//定义RedisTemplate类对象@Overridepublic List<Book> getBooks() {while (redisTemplate.opsForList().size("book")>0){//如果redis中存在book集合redisTemplate.opsForList().leftPop("book");//则清空book集合}redisTemplate.opsForList().rightPushAll("book",bookMapper.findAll());//将findAll数据库的结果写入redis的list中return bookMapper.findAll();}
}

在控制器(Web层)引入RedisTemplate

用于查询数据

package pringbootmybatis.demo.controller;import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import pringbootmybatis.demo.entity.Book;
import pringbootmybatis.demo.service.BookService;import java.util.List;/*** @author Una* @date 2022/8/22 13:49* @description:*/@RestController
public class BookController {@Autowiredprivate RedisTemplate redisTemplate;@Autowiredprivate BookService bookService;@GetMapping("/all")public String books() throws JsonProcessingException {List<Book> list=redisTemplate.opsForList().range("book",0,-1);System.out.println("缓存中数据:"+list.size());if (list.size()==0){System.out.println("=====缓存中没有数据=====");list=bookService.getBooks();}else {System.out.println("=====缓存中有数据=====");list.forEach(book -> System.out.println(book));}ObjectMapper objectMapper=new ObjectMapper();String books=objectMapper.writeValueAsString(list);return books;}}

Spring框架对redis的封装相关推荐

  1. Redis:Spring框架下Redis的配置和调用,xml文件中redis的配置,redisTemplate的使用和jedis的使用

    老规矩了,再次重复一遍,配置XML文件为Spring框架所属,所使用的框架是Spring,非SpringBoot!!! Spring框架整合Redis并且使用 1.配置文件 <bean clas ...

  2. Spring框架-JdbcTemplate

    1.概念和准备 1.1 什么是 JdbcTemplate Spring 框架对JDBC进行封装,使用 JdbcTemplate 方便实现对数据库操作 1.2 准备工作 引入依赖: `spring-jd ...

  3. 利用Spring框架封装的JavaMail现实同步或异步邮件发送

    利用Spring框架封装的JavaMail现实同步或异步邮件发送 作者:张纪豪 J2EE简单地讲是在JDK上扩展了各类应用的标准规范,邮件处理便是其中一个重要的应用.它既然是规范,那么我们就可以通过J ...

  4. Spring框架对JDBC的简单封装。提供了一个JDBCTemplate对象简化JDBC的开发

    Spring JDBC     * Spring框架对JDBC的简单封装.提供了一个JDBCTemplate对象简化JDBC的开发     * 步骤:         1. 导入jar包        ...

  5. 一步步重构容器实现Spring框架——彻底封装,实现简单灵活的Spring框架(十一)...

    2019独角兽企业重金招聘Python工程师标准>>> 这篇博文的目标是不仅形似Spring,而且要神似Spring,进一步封装对象的依赖关系. 我们知道Spring框架,不仅可以根 ...

  6. 利用Spring框架封装的JavaMail实现同步或异步邮件发送

    J2EE简单地讲是在JDK上扩展了各类应用的标准规范,邮件处理便是其中一个重要的应用.它既然是规范,那么我们就可以通过JDK遵照邮件协议编写一个邮件处理系统,但事实上已经有很多厂商和开源组织这样做了. ...

  7. JAVA开发血泪之路:一步步搭建spring框架

    JAVA开发血泪之路:一步步搭建spring框架 作为一个服务端开发感觉一直挺排斥框架这种东西的,总觉得什么实现逻辑都帮你封装在里面了,你只需要配置这配置那个,出了问题也不知道怎么排查,之前即使写we ...

  8. Java Web现代化开发:Spring Boot + Mybatis + Redis二级缓存

    背景 Spring-Boot因其提供了各种开箱即用的插件,使得它成为了当今最为主流的Java Web开发框架之一.Mybatis是一个十分轻量好用的ORM框架.Redis是当今十分主流的分布式key- ...

  9. Spring 框架蕴含的设计思想

    在 Google Guava 源码讲解中,我们讲到开发通用功能模块的一些比较普适的开发思想,比如产品意识.服务意识.代码质量意识.不要重复早轮子等.今天,我们剖析一下 Spring 框架背后的一些经典 ...

最新文章

  1. jquery日历插件FullCalendar使用技巧
  2. 哈希表(等概率下)平均查找长度(转)
  3. Python 分析天气,告诉你中秋应该去哪里
  4. 高起专计算机应用基础试题及答案,重庆大学网络教育高起专计算机应用基础入学考试模拟题及答案(二)...
  5. mysql mybatis cdata_mybatis中<![CDATA[]]>的用法
  6. 基于KD树的K近邻算法(KNN)算法
  7. 如何优雅地在 Linux 上运行 QQ、微信?
  8. L2-019 悄悄关注(STL)
  9. 苹果安卓最新看片神器各种实用功能,帮你一年省下上千块!
  10. DevOps 实践指南
  11. java开源知识库项目_18个java cms开源项目
  12. 第1章 Pandas基础
  13. 058.克鲁斯卡尔(Kruskal)算法的原理以及解决最小生成树问题
  14. Arm 虚拟硬件与新解决方案或将颠覆物联网产品研发
  15. 应用计算机测定电阻伏安特性实验,电路元件伏安特性测量实验报告答案.doc
  16. jmeter工具进行性能测试
  17. libusb android pc,libusb: android上集成libusb库
  18. 算法笔记-CDQ分治
  19. IntelliJ IDEA 14注册码
  20. macOS安装软件的正确方法

热门文章

  1. 2013年广州盛成php开发工程师第一轮笔试回顾
  2. CVPR2020 步态论文:Gait Recognition via Semi-supervised Disentangled Representation Learning to Identit
  3. Only no-arg methods may be annotated with @Scheduled
  4. Stata常用命令示例
  5. 软件测试之软件系统测试
  6. 用户体验设计—影响定制化设计的因素
  7. 天梯赛练习集 L2-021 点赞狂魔(25分)含测试点解析
  8. hw3-空间与运动作业
  9. Flink入门教程(四)——窗口(二)
  10. java实验三_java实验三实验报告.docx