开发者学堂课程【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是目前开源领域中使用较为常见的缓存。
RedisConnection 建立Java与Redis服务器之间的连接,统称为模式
MySQL适用范围较广
架构,小公司来说开发人员划分相对并不明确,后台开发可能一人完成,可能存在一人开发或多人、外包团队开发。
2.面试题:三层架构+高并发缓存
大型公司会开发独立的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,即刚才存入的值,可以存储订单也可以存储订单账号或用户、用户账号,进行分类加一个字段,登录社交平台,进行位置的访问