课时4: Spring Boot2.5 实战高并发缓存 Redis 与安全机制|学习笔记(一)

本文涉及的产品
云数据库 Redis 版,标准版 2GB
推荐场景:
搭建游戏排行榜
云原生内存数据库 Tair,内存型 2GB
简介: 快速学习课时4: Spring Boot2.5 实战高并发缓存 Redis 与安全机制

开发者学堂课程【5天实战 Spring Boot 2.5课时4: Spring Boot2.5 实战高并发缓存 Redis 与安全机制】学习笔记,与课程紧密联系,让用户快速学习知识。  

课程地址:https://developer.aliyun.com/learning/course/780/detail/13693


课时4: Spring Boot2.5 实战高并发缓存 Redis 与安全机制


内容介绍:

一、Spring Boot 2.5.x 实战分布式缓存 Redis6.0

二、Java Spring Data for Redis 架构

三、Linux Install Redis


Spring Boot 操作另外一个数据库,包括MongoDB。另外一个技术Redis,缓存,Redis 主要工作为高并发缓存,缓存也称为内存数据库,把数据存入内存条中,内存的速度相比磁盘快,内存速度与CPU速度基本接近,与CPU也存在差异,差10个量级。固态磁盘、光碟磁盘等传统机械磁盘速度相对内存速度小,从磁盘上进行读取,CPU需要等待较长时间,加入硬件,把数据提前放入,需要时CPU从内存条中优先读取数据。类比缓存思想,加速,优先快速的读取数据。

职位:网管(小公司)、运维工程师(大公司,开发数据库加管理)、测试、数据库工程师、安全工程师等,职位多,工程师一般是写代码出身


一、Spring Boot 2.5.x 实战分布式缓存 Redis6.0

1.Spring Data Redis6.0

从技术角度看,测试工程师的水平越高,发现的问题越多,软件质量越好,是一种理论状况

理论上,越负责人的测试工程师,越专业,深入寻找问题

测试工程师与开发工程师合作,开发工程师帮助发现一些问题

淘宝登陆账号或查看账单时,都在缓存中,早期的淘宝版本放在数据库中,现阶段,淘宝用户数量多,登录查找数据库时会较慢,数据库并发率不高,效率低下。

如,登录微信时,微信好友、聊天记录缓存到本地中,也是缓存的一种,本地会缓存一些图片、聊天记录等,优先看本地数据。

相较于微信的缓存,Redis不太相同,Redis网站接近服务器一端,本地的APP有缓存机制,本地保存相同的数据,节省下载的时间。

缓存技术多种多样,Redis是目前开源领域中使用较为常见的缓存。

Spring Boot2.5实战高并发缓存Redis与安全机制-780797.png

RedisConnection 建立Java与Redis服务器之间的连接,统称为模式

MySQL适用范围较广

架构,小公司来说开发人员划分相对并不明确,后台开发可能一人完成,可能存在一人开发或多人、外包团队开发。

2.面试题:三层架构+高并发缓存

Spring Boot2.5实战高并发缓存Redis与安全机制-780923.png

大型公司会开发独立的APP,如淘宝、微信等,成本较高

对创业公司来说,前期做APP可能推广较为困难,成本高

工程师成本较高

早期编写的代码放入DAO中,访问各种数据库,业务逻辑层分装商业规则,打折扣等。数据访问,小型网站可能有一个数据库,大型网站可能有多个数据库,数据优先先读缓存。

QQ早期登录需要花费很长时间,因为登陆人数多,系统需要缓存,开通会员有优先访问权,思路是相同的。

Java访问缓存有专门驱动,价格各不相同,CPU也存在差距,从性能来说较为强的硬件设施,Redis是社区,是免费的

排序、范围查询、数据库操作,功能越来越复杂,基本职责、主要的职责是缓存,经过长时间的发展,功能增多

SQL connection连接对象,建立MySQL与java之间的连接,Redis connection建立Redis与java 的连接

有些官方提供,有些光放未提供,需要开发。

Java在解决不同的问题时,有各自不同的经验与方法,称为模式。

工厂模式:创建生产连接对象

仓储模式:分装数据源的操作

定位进行排序,就近原则

社区团购、快速定位周边,用户快速知道周边商家,存储周边位置,抢占市场

提高效率与质量,也会引起部分人失业,社会变革会引起很多问题,引起利益纠纷,也存在阻碍社会生产力,本意充分利用闲置资源,适应各种地区的规章制度

工厂推行现代化,人工智能程序编写出后,提高效率,又快又好,节省资源但会引起失业,要学会技术,高技术水平人才才能够立足

3.Java Spring Data 2.x for Redis 新特性

(1)支持多种Redis驱动程序/连接器的低级抽象(Jedis和Lettuce。JRedis和SRP过期)

(2)Spring Data Access exception和Redis driver exceptions转换

(3)Redisiemplate高级抽象封装Redis操作,异常转换和序列化工作

(4)Pubsub发布订阅模式支持(例如消息驱动POJO的MessageListenerContain)

(5)支持Redis Sentinel和Redis Cluster集群模式

(6)JDK,String,JSON和Spring Object/ XML映射序列化器

(7)基于Redis的JDK Collection实现

(8)Atomic counter原子计数器

(9)Sorting and Pipelining功能

(10)专门API支持SORT,SORT / GET模式和返回批量值数据

(11)ShiyiRedis实现了Spring 3.1缓存抽象

(12)自动实现Repository接口,@EnableRedisRepositories支持自定义查找方法

(13)支持存储库的CDI

4.Spring Data 2.x for Redis

(1)Upgrade to Java 8.

(2)Upgrade to Lettuce 5.0.

(3)Removed support for SRP and JRedis drivers.

(4)Reactive connection support using Lettuce.

(5)Introduce Redis feature-specific interfaces for

RedisConnection.

(6)Improved RedisConnectionFactory configuration with JedisClientConfiguration and LettuceClientConfiguration.

(7)Revised RedisCache implementation.

(8)Add SPOP with count command for Redis 3.2.

5.Redis API

org.springframework.data.redis.connection包. RedisConnection

RedisConnectionFactory Interface

学习技术,才能使工作稳定

6.RedisConnection 解析

(1)RedisConnection为Redis通信提供核心组件

(2)处理与Redis服务器后端的通信。

(3)自动将底层连接异常转换为Spring DAO异常

(4)可以在不更改任何代码的情况下切换连接器,

(5)操作语义保持不变。

(6)统一接口

(7)工厂模式

(8)仓储模式

做练习需要有数据库,安装Redis,windows项目不能组装,Java项目首先具备数据库,将Redis安装,Windows版本Redis不能组装。wget下载命令,tar解压压缩包,cd切换目录(如6.2.1目录),make编译,了解先前的操作方式,源代码

启动客户端命令,get set,set设置,键值对,set1存储java,set2存MySQL,set3存PAP,get1返回值java,即刚才存入的值,可以存储订单也可以存储订单账号或用户、用户账号,进行分类加一个字段,登录社交平台,进行位置的访问

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
1月前
|
缓存 NoSQL Java
SpringBoot整合Redis、以及缓存穿透、缓存雪崩、缓存击穿的理解分布式情况下如何添加分布式锁 【续篇】
这篇文章是关于如何在SpringBoot应用中整合Redis并处理分布式场景下的缓存问题,包括缓存穿透、缓存雪崩和缓存击穿。文章详细讨论了在分布式情况下如何添加分布式锁来解决缓存击穿问题,提供了加锁和解锁的实现过程,并展示了使用JMeter进行压力测试来验证锁机制有效性的方法。
SpringBoot整合Redis、以及缓存穿透、缓存雪崩、缓存击穿的理解分布式情况下如何添加分布式锁 【续篇】
|
29天前
|
缓存 Java Maven
Java本地高性能缓存实践问题之SpringBoot中引入Caffeine作为缓存库的问题如何解决
Java本地高性能缓存实践问题之SpringBoot中引入Caffeine作为缓存库的问题如何解决
|
3月前
|
缓存 NoSQL Java
在 Spring Boot 应用中使用 Spring Cache 和 Redis 实现数据查询的缓存功能
在 Spring Boot 应用中使用 Spring Cache 和 Redis 实现数据查询的缓存功能
158 0
消息中间件 缓存 监控
21 0
|
1月前
|
缓存 NoSQL Java
SpringBoot整合Redis、以及缓存穿透、缓存雪崩、缓存击穿的理解、如何添加锁解决缓存击穿问题?分布式情况下如何添加分布式锁
这篇文章介绍了如何在SpringBoot项目中整合Redis,并探讨了缓存穿透、缓存雪崩和缓存击穿的问题以及解决方法。文章还提供了解决缓存击穿问题的加锁示例代码,包括存在问题和问题解决后的版本,并指出了本地锁在分布式情况下的局限性,引出了分布式锁的概念。
SpringBoot整合Redis、以及缓存穿透、缓存雪崩、缓存击穿的理解、如何添加锁解决缓存击穿问题?分布式情况下如何添加分布式锁
|
1月前
|
缓存 NoSQL Java
SpringBoot的三种缓存技术(Spring Cache、Layering Cache 框架、Alibaba JetCache 框架)
Spring Cache 是 Spring 提供的简易缓存方案,支持本地与 Redis 缓存。通过添加 `spring-boot-starter-data-redis` 和 `spring-boot-starter-cache` 依赖,并使用 `@EnableCaching` 开启缓存功能。JetCache 由阿里开源,功能更丰富,支持多级缓存和异步 API,通过引入 `jetcache-starter-redis` 依赖并配置 YAML 文件启用。Layering Cache 则提供分层缓存机制,需引入 `layering-cache-starter` 依赖并使用特定注解实现缓存逻辑。
233 1
SpringBoot的三种缓存技术(Spring Cache、Layering Cache 框架、Alibaba JetCache 框架)
|
26天前
|
缓存 NoSQL Java
【Azure Redis 缓存】定位Java Spring Boot 使用 Jedis 或 Lettuce 无法连接到 Redis的网络连通性步骤
【Azure Redis 缓存】定位Java Spring Boot 使用 Jedis 或 Lettuce 无法连接到 Redis的网络连通性步骤
|
29天前
|
缓存 Java Spring
Java本地高性能缓存实践问题之在Spring Boot中启用缓存支持的问题如何解决
Java本地高性能缓存实践问题之在Spring Boot中启用缓存支持的问题如何解决
|
1月前
|
存储 缓存 NoSQL
基于SpringBoot+Redis解决缓存与数据库一致性、缓存穿透、缓存雪崩、缓存击穿问题
这篇文章讨论了在使用SpringBoot和Redis时如何解决缓存与数据库一致性问题、缓存穿透、缓存雪崩和缓存击穿问题,并提供了相应的解决策略和示例代码。
55 0
|
3月前
|
缓存 NoSQL Java
案例 采用Springboot默认的缓存方案Simple在三层架构中完成一个手机验证码生成校验的程序
案例 采用Springboot默认的缓存方案Simple在三层架构中完成一个手机验证码生成校验的程序
90 5