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

本文涉及的产品
Redis 开源版,标准版 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,即刚才存入的值,可以存储订单也可以存储订单账号或用户、用户账号,进行分类加一个字段,登录社交平台,进行位置的访问

相关文章
|
6月前
|
缓存 Java 数据库
SpringBoot集成Ehcache缓存使用指南
以上是SpringBoot集成Ehcache缓存的基本操作指南,帮助你在实际项目中轻松实现缓存功能。当然,Ehcache还有诸多高级特性,通过学习和实践,你可以更好地发挥它的威力。
669 20
|
12月前
|
缓存 NoSQL Java
什么是缓存?如何在 Spring Boot 中使用缓存框架
什么是缓存?如何在 Spring Boot 中使用缓存框架
787 0
|
缓存 NoSQL Java
SpringBoot整合Redis、以及缓存穿透、缓存雪崩、缓存击穿的理解分布式情况下如何添加分布式锁 【续篇】
这篇文章是关于如何在SpringBoot应用中整合Redis并处理分布式场景下的缓存问题,包括缓存穿透、缓存雪崩和缓存击穿。文章详细讨论了在分布式情况下如何添加分布式锁来解决缓存击穿问题,提供了加锁和解锁的实现过程,并展示了使用JMeter进行压力测试来验证锁机制有效性的方法。
SpringBoot整合Redis、以及缓存穿透、缓存雪崩、缓存击穿的理解分布式情况下如何添加分布式锁 【续篇】
|
缓存 Java Maven
Java本地高性能缓存实践问题之SpringBoot中引入Caffeine作为缓存库的问题如何解决
Java本地高性能缓存实践问题之SpringBoot中引入Caffeine作为缓存库的问题如何解决
617 1
|
10月前
|
缓存 NoSQL Java
springboot怎么使用rides缓存方法的返回值 完整例子
通过上述步骤,我们成功地在 Spring Boot 项目中集成了 Redis 缓存,并通过注解的方式实现了方法返回值的缓存。这种方式不仅提高了系统的性能,还简化了缓存管理的复杂度。使用 Spring Boot 的缓存注解和 Redis,可以轻松地实现高效、可靠的缓存机制。
242 23
|
11月前
|
缓存 NoSQL Java
Spring Boot中的分布式缓存方案
Spring Boot提供了简便的方式来集成和使用分布式缓存。通过Redis和Memcached等缓存方案,可以显著提升应用的性能和扩展性。合理配置和优化缓存策略,可以有效避免常见的缓存问题,保证系统的稳定性和高效运行。
347 3
|
消息中间件 缓存 监控
【Java笔记+踩坑】SpringBoot基础3——开发。热部署+配置高级+整合NoSQL/缓存/任务/邮件/监控
springboot的热部署、配置的宽松绑定和校验、任务、邮件、监控、springboot整合JdbcTemplate,h2等sql技术、整合redis,mongodb,es等nosql技术、整合redis,Memcached,jetcache,j2cache等缓存技术、整合ActiveMQ,RabbitMQ,RocketMQ,Kafka等消息的中间件的入门、整合缓存/任务/邮件/监控
【Java笔记+踩坑】SpringBoot基础3——开发。热部署+配置高级+整合NoSQL/缓存/任务/邮件/监控
|
缓存 NoSQL Java
SpringBoot整合Redis、以及缓存穿透、缓存雪崩、缓存击穿的理解、如何添加锁解决缓存击穿问题?分布式情况下如何添加分布式锁
这篇文章介绍了如何在SpringBoot项目中整合Redis,并探讨了缓存穿透、缓存雪崩和缓存击穿的问题以及解决方法。文章还提供了解决缓存击穿问题的加锁示例代码,包括存在问题和问题解决后的版本,并指出了本地锁在分布式情况下的局限性,引出了分布式锁的概念。
SpringBoot整合Redis、以及缓存穿透、缓存雪崩、缓存击穿的理解、如何添加锁解决缓存击穿问题?分布式情况下如何添加分布式锁
|
存储 缓存 Java
在Spring Boot中使用缓存的技术解析
通过利用Spring Boot中的缓存支持,开发者可以轻松地实现高效和可扩展的缓存策略,进而提升应用的性能和用户体验。Spring Boot的声明式缓存抽象和对多种缓存技术的支持,使得集成和使用缓存变得前所未有的简单。无论是在开发新应用还是优化现有应用,合理地使用缓存都是提高性能的有效手段。
354 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` 依赖并使用特定注解实现缓存逻辑。
2901 1
SpringBoot的三种缓存技术(Spring Cache、Layering Cache 框架、Alibaba JetCache 框架)

热门文章

最新文章