SpringBoot(十一): Spring Boot集成Redis
1、在 pom.xml 中配置相关的 jar 依赖;
<!-- 加载 spring boot redis 包 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>

2、在 Springboot 核心配置文件 application.properties 中配置
#配置redis
spring.redis.host=localhost
spring.redis.password=
spring.redis.port=6379
3、配置了上面的步骤,Spring boot 将自动配置 RedisTemplate,在需要操作 redis 的类中注入 redisTemplate; 在使用的类中注入:
@Autowired
private RedisTemplate<String, String> redisTemplate;
@Autowired
private RedisTemplate<Object, Object> redisTemplate;
spring boot 帮我们注入的 redisTemplate 类,泛型里面只能写<String, String>、<Object, Object>
复用上一章集成mybatis的代码

启动测试发现报错,让你后将对对象序列化


生成序列化ID方法如下:



点击即可生成,或者使用快捷键Alt+Enter
5-2 Spring Boot 集成 Redis 测试启动程序,进行访问测试;
设置 key 的序列化方式为字符串,增强 key 的可读性;

访问Controller

查看redis

5-3 高并发条件下缓存穿透问题分析
在项目中使用缓存通常是先检查缓存中是否存在,如果存在直接返回缓存内容,如果不存在就直接查询数据库,然后将查询出来的数据缓
存到缓存中,最终返回查询结果; 但是如果大量用户请求查询的某一个数据,而该数据在缓存中不存
在,就会造成大量的用户请求都去查询 DB,这样缓存就失去了意义,在并发流量大时,可能导致 DB 压力过大而失去响应;
5-4 高并发条件下缓存穿透问题复现
按照常规的代码实现方式,多线程并发条件下多个请求落入到了数据库;
5-5 高并发条件下缓存穿透问题处理
通过锁机制,避免请求穿透缓存直接落入到数据库;
解决方式一: 加synchronized 但是这样会导致效率很低,不推荐使用!

解决方法二:双重检测机制 (如果集群的项目,可以了解一下分布式锁)

5-6 高并发条件下缓存穿透问题测试
运行程序,观察是否有多个请求落入到数据库;
Redis 哨兵模式待更新
SpringBoot(十一): Spring Boot集成Redis的更多相关文章
- Spring Boot 2.X(六):Spring Boot 集成Redis
Redis 简介 什么是 Redis Redis 是目前使用的非常广泛的免费开源内存数据库,是一个高性能的 key-value 数据库. Redis 与其他 key-value 缓存(如 Memcac ...
- (35)Spring Boot集成Redis实现缓存机制【从零开始学Spring Boot】
[本文章是否对你有用以及是否有好的建议,请留言] 本文章牵涉到的技术点比较多:Spring Data JPA.Redis.Spring MVC,Spirng Cache,所以在看这篇文章的时候,需要对 ...
- spring boot集成redis基础入门
redis 支持持久化数据,不仅支持key-value类型的数据,还拥有list,set,zset,hash等数据结构的存储. 可以进行master-slave模式的数据备份 更多redis相关文档请 ...
- 【spring boot】【redis】spring boot 集成redis的发布订阅机制
一.简单介绍 1.redis的发布订阅功能,很简单. 消息发布者和消息订阅者互相不认得,也不关心对方有谁. 消息发布者,将消息发送给频道(channel). 然后是由 频道(channel)将消息发送 ...
- spring boot集成redis实现session共享
1.pom文件依赖 <!--spring boot 与redis应用基本环境配置 --> <dependency> <groupId>org.springframe ...
- 【SpringBoot】Spring Boot 集成SwaggerAPI
Spring Boot 集成SwaggerAPI 文章目录 Spring Boot 集成SwaggerAPI Swagger 添加依赖 配置类 config 控制类 controller 接口测试 页 ...
- spring boot 集成 redis lettuce
一.简介 spring boot框架中已经集成了redis,在1.x.x的版本时默认使用的jedis客户端,现在是2.x.x版本默认使用的lettuce客户端,两种客户端的区别如下 # Jedis和L ...
- spring boot集成redis的血泪史
首先说明环境不是我搭建的,然后因项目需要添加redis的时候,麻烦来了.springboot 用的是1.5.9因为以前弄过redis,所以直接拿过来,麻烦了首先是莫名的错误,连项目都启动不了.但是最后 ...
- Spring Boot 集成 Redis 实现缓存机制
本文章牵涉到的技术点比较多:spring Data JPA.Redis.Spring MVC,Spirng Cache,所以在看这篇文章的时候,需要对以上这些技术点有一定的了解或者也可以先看看这篇文章 ...
随机推荐
- Codeforces Round #658 (Div. 2) D. Unmerge(dp)
题目链接:https://codeforces.com/contest/1382/problem/D 题意 给出一个大小为 $2n$ 的排列,判断能否找到两个长为 $n$ 的子序列,使得二者归并排序后 ...
- Codeforces Global Round 9 D. Replace by MEX
题目链接:https://codeforces.com/contest/1375/problem/D 题意 给出一个大小为 $n$,元素值位于 $[0,n]$ 之间的数组,每次可以将一个元素替换为数组 ...
- 【noi 2.6_8471】切割回文(DP)
题意:给一个字符串,问至少切割几次使每子串都是回文的. 解法:f[i]表示前i个字符至少需要切割几次,预处理p[i][j]表示子串s[i]~s[j]是否为回文串.O(n^2) 另外,这题也类似&quo ...
- 初学算法之最基础的stl队列
简记为先进先出(first in first out) 它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作. 实用: #include <queue>//头 ...
- 5分钟看懂Code128条形码
什么是Code128条形码? 相信大家看到这个都不陌生吧 1.前言 条形码种类很多,常见的大概有二十多种码制,其中包括:Code39码(标准39码).Codabar码(库德巴码).Code25码(标准 ...
- 2019南昌网络赛H The Nth Item(二阶线性数列递推 + 广义斐波那契循环节 + 分段打表)题解
题意: 传送门 已知\(F(n)=3F(n-1)+2F(n-2) \mod 998244353,F(0)=0,F(1)=1\),给出初始的\(n_1\)和询问次数\(q\),设每一次的答案\(a_i= ...
- springboot(六)Email demo
项目中经常使用邮件发送提醒功能,比如说更新安全机制,发送邮件通知用户等 一.简单邮件发送 导入依赖: <dependency> <groupId>org.springframe ...
- 快速计算类似斐波那契数列数列的数列的第N项,矩阵快速幂
这个题有循环节,可以不用这么做,这个可以当一个模板 #include <iostream> #include <cstdio> using namespace std; typ ...
- codevs1039整数的k划分-思考如何去重复
题目描述将整数n分成k份,且每份不能为空,任意两种划分方案不能相同(不考虑顺序).例如:n=7,k=3,下面三种划分方案被认为是相同的.1 1 51 5 15 1 1问有多少种不同的分法.输入描述输入 ...
- empty Checker
empty Checker "use strict"; /** * * @author xgqfrms * @license MIT * @copyright xgqfrms * ...