开发者学堂课程【Java Spring Boot 2.6.0开发实战-1024程序员节创造营公益课:高并发分布式缓存 Redis6.0(一)】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/903/detail/14342
高并发分布式缓存 Redis6.0(一)
目录:
一, 三层架构+高并发缓存 Redis 视图
二, Java Spring Data 2.x for Redis 新特性
三, Redis API
四, RedisConnection 解析
五, Java Spring Data for Redis 架构
六, Redis Template
七, Linux 安装 Redis 6.2
八, Redis 配置文件修改允许远程链接
九, 实战演练
十,高级面试题
前言:
Redis6.0 主要应用于高并发场景,如秒杀双十一场景时就应用到了该技术。
Redis 给予内存来存储数据的,所以比磁盘存储的速度要快很多。但是也根据业务场景来确定。
一, 三层架构+高并发缓存 Redis 视图
Spring Data Redis6.0
二,Java Spring Data 2.x for Redis 新特性
1.支持多种 Redis 驱动程序/连接器的低级抽象(Jedis 和 Lettuce。JRedis 和 SRP 过期)
2.Spring Data Access exception和Redis driver exceptions 转换
3. RedisTemplate 高级抽象封装 Redis 操作,异常转换和序列化工作
4.Pubsub 发布订阅模式支持(例如消息驱动 POJO的MessageListenerContainer)
5.支持 Red is 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.Redis实现了 Spring 3.1缓存抽象
12自动实现 Repository 接口,@EnableRedisRepositories 支持自定义查找方法
13.支持存储库的 CDI
三,Redis API
l org.springframework.data.redis.connection包
l RedisConnection
l RedisConnectionFactory Interface
四,RedisConnection 解析
1. RedisConnection 为 Redis 通信提供核心组件
2.处理与 Redis 服务器后端的通信。
3.自动将底层连接异常转换为 Spring DAO 异常
4.可以在不更改任何代码的情况下切换连接器,
5.操作语义保持不变。
6.统一接口
7.工厂模式
8.仓储模式
五, Java Spring Data for Redis 架构示意图
六,Redis Template
lnterface |
Description |
GeoOperations |
Redis geospatial 操作,例如GEOADD, GEORADIUS,... |
HashOperations |
Redis hash 操作 |
HyperLogLogOperations |
Redis HyperLogLog ,例如PFADD, PFCOUNT..…. |
ListOperations |
Redis list 操作 |
SetOperations |
Redis set 操作 |
ValueOperations |
Redis string (or value)操作 |
ZSetOperations |
Redis zset (or sorted set)操作 |
七,Linux安装Redis 6.2
l 下载安装
l
$ wget https://download.redis.io/releases/redis-6.2.1.tar.gz.、
l
$tar xzf redis-6.2.1.tar.gz
l
$ cd redis-6.2.1
l
$make
l 2.启动服务器
l $ src/redis-server
·3.启动命令客户端
l
$ src/redis-cli
l 4.新增查询 Key value.redis> set 1 java
OK
redis> get 1"java"
Linux 下启动 Redis Server
必要条件:
1.Linux
2. Redis 2.6 or above
3. Jedis or Lettuce
4.Jedis 在实现上是直连 redis server,多线程环境下非线程安
全,除 非使用连接池,为每个 redis 实例增加物理连接。
5. Lettuce 是一种可伸缩,线程安全,完全非阻塞的 Redis 客户
端,多个线程可以共享一个 RedisConnection,它利用 NettyNIO 框架来高效地管理多个连接,从而提供了异步和同步数据访问方式,用于构建非阻塞的反应性应用程序。
八,Redis 配置文件修改允许远程链接
l 配置文件 redis.conf,
l 绑定本机地址: bind 127.0.0.1
l 注释掉# bind 127.0.0.1
l 或者修改为
l bind 0.0.0.0