SpringBoot整合Redis缓存中间件
首先在pom.xml中引入依赖
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency><groupId>org.apache.commons</groupId><artifactId>commons-pool2</artifactId></dependency>
指明redis主机端口,这里我用的是虚拟机(docker)
spring:redis:port: 6379host: 192.168.0.106password: 123
关于redis在docker-compose中的配置文件,docker-compose.yml,我觉得也有必要在这里写一下:
version: '3'
services:redis:image: rediscontainer_name: redisrestart: alwaysports:- 6379:6379volumes:- ./config:/docker/config- ./data:/datacommand: redis-server /docker/config/redis.conf
这里我的文件tree:
我们需要额外配置的配置文件放在conf文件夹下面,redis.conf
内容如下,仅供参考,根据自己的需要进行配置:
#redis的databases数量
databases 32
#redis密码
requirepass 123
来写一个例子:
@GetMapping("/user/{id}")public Users findUser(@PathVariable("id") Integer id){RedisSerializer redisSerializer = new StringRedisSerializer();rediss.setKeySerializer(redisSerializer);Users u = (Users) rediss.opsForValue().get("key");if(null == u){synchronized (this){ //处理缓存穿透问题if(u == null) {u = usersDao.UserfindById(id);rediss.opsForValue().set("key",u);}}}return u;}
redisSerializer
这个是让键在显示的时候不是以序列化的形式显示,方便我们查看,上面的代码先是在redis中查找有没有key的键,如果有的话直接就返回了值,如果没有的话,先去数据库中查找,查找的结果放入redis中。这里加了synchronized
上了锁,是处理高并发的情况,高并发的时候,只需要一个人在数据库查找到了结果,其他的人就可以直接走缓存了。有效避免了数据库的压力。
在保存对象的时候,redis默认给你序列化,如果你想要把对象转化为json数据,需要修改redis默认的序列化器。
SpringBoot整合Redis缓存中间件相关推荐
- SpringBoot整合Redis缓存
SpringBoot整合Redis缓存 一.缓存概念知识 1.是什么缓存 2.缓存的优缺点 3.为什么使用缓存 二.Redis概念知识 1.Redis简介 2.为什么用Redis作为缓存 3.Redi ...
- SpringBoot整合redis缓存(一)
一. 准备工作 1.Linux系统 2.安装redis(也可以安装docker,然后再docker中装redis,本文章就直接用Linux安装redis做演示)redis下载地址:http://dow ...
- springboot整合redis缓存报错
一.问题现象 二.解决办法
- SpringBoot缓存管理(二) 整合Redis缓存实现
SpringBoot支持的缓存组件 觅波小说网 https://www.3812.info 在SpringBoot中,数据的缓存管理存储依赖于Spring框架中cache相关的org.springfr ...
- springboot整合redis做缓存
之前的项目中,用到过redis,主要是使用redis做缓存,redis在web开发中使用的场景很多,其中缓存是其中一个很重要的使用场景,之所以用作缓存,得益于redis的读写数据,尤其是在读取数据的时 ...
- Springboot整合redis实现缓存及其缓存运行原理浅析
声明:小白,学习阶段,主要目的是为了记录学习过程,本文仅供参考,如有不足的地方欢迎指出讨论交流 本文基于Springboot2.1.3版本开发: 准备阶段 首先是pom.xml文件所需的依赖: < ...
- 8分钟带你学会SpringBoot整合Redis来实现缓存技术
1.概述 随着互联网技术的发展,对技术要求也越来越高,所以在当期情况下项目的开发中对数据访问的效率也有了很高的要求,所以在项目开发中缓存技术使用的也越来越多,因为它可以极大的提高系统的访问速度,关于缓 ...
- SpringBoot整合Redis+Redis缓存应用+Redis实现Session共享+...
一.SpringBoot整合Redis 1.导入依赖 <!--存在Redis依赖--> <dependency><groupId>org.springframewo ...
- SpringBoot整合redis实现发布订阅模式
Redis的发布订阅模式 发布订阅(Pub/Sub):目前广泛使用的通信模型,它采用事件作为基本的通信机制,提供大规模系统所要求的松散耦合的交互模式:订阅者(如客户端)以事件订阅的方式表达出它有兴趣接 ...
最新文章
- 解决Mask RCNN训练时GPU内存溢出问题
- UnitOfWork以及其在ABP中的应用
- Ajax Session失效跳转登录页面的方法
- 改编码格式_编码不规范,同事真的会两行泪?
- Android Camera 流程学习记录(五)—— Camera.takePicture() 流程解析
- 软件项目周报_软件产品研发流程
- 深入react技术栈(2):JSX语法
- (96)FPGA时序违规案例(一)
- python生成手写文字图片_使用PHP辅助 快速制作一套自己的手写字体实践
- tolua unity 报错_Unity Editor + tolua 在 Linux 下的 runtime 问题
- vue 使用swper组件
- python打印各种三角形_如何使用Python 打印各种三角形
- 【python】算术运算报错can‘t multiply sequence by non-int of type ‘float‘
- @Column中的length属性和@Size和@length区别
- GPS中的空间坐标系
- 程序员女朋友的相册是这样的
- 数据库系统概论——绪论——1.1 数据库系统概述
- labelImg 免命令安装(Windows)
- Ward Cunningham创建模式共享社区
- zt 欲成富翁须有七大特质(个人理财)
热门文章
- GL-关于intercopany 和intracompany 的个人理解
- linux下移除环境变量及mkdir命令介绍
- 无法删除sqlserver的jobs的方式
- zend_soap做webservice的使用方法
- 《课程的反思与重建--我们需要什么样的课程观》之学习体会
- input中checked复选框进行单选
- 借攻防演习提升企业安全能力
- 动态规划-最长上升子序列(LIS)
- C#窗体控件-单选按钮控件RadioButton
- 一起谈.NET技术,编写T4模板无法避免的两个话题:quot;Assembly Lockingquot;amp;quot;Debugquot;...