高并发分布式缓存 Redis6.0(一)|学习笔记

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: 快速学习高并发分布式缓存 Redis6.0(一)

开发者学堂课程【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

image.png

image.png

二,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 架构示意图

image.png

 

六,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

image.png

必要条件:

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

相关实践学习
基于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
相关文章
|
7月前
|
缓存 NoSQL 关系型数据库
数据库缓存一致性学习笔记(一)
数据库缓存一致性学习笔记(一)
|
缓存 前端开发
前端学习笔记202306学习笔记第四十七天-vue-强制缓存3
前端学习笔记202306学习笔记第四十七天-vue-强制缓存3
71 0
|
7月前
|
存储 缓存 前端开发
《Webpack5 核心原理与应用实践》学习笔记-> webpack5持久化缓存
《Webpack5 核心原理与应用实践》学习笔记-> webpack5持久化缓存
271 1
|
缓存 NoSQL 算法
Redis学习笔记-缓存容量和淘汰机制核心思想
Redis学习笔记-缓存容量和淘汰机制核心思想
144 0
|
消息中间件 缓存 NoSQL
Redis学习笔记-如何解决缓存和数据库的数据不一致
Redis学习笔记-如何解决缓存和数据库的数据不一致
197 0
|
缓存 NoSQL 数据库
Redis学习笔记-如何应对缓存雪崩、击穿、穿透
Redis学习笔记-如何应对缓存雪崩、击穿、穿透
63 0
|
缓存 前端开发
前端学习笔记202307学习笔记第五十九天-react源码-双缓存技术
前端学习笔记202307学习笔记第五十九天-react源码-双缓存技术
73 0
前端学习笔记202307学习笔记第五十九天-react源码-双缓存技术
|
缓存 前端开发
前端学习笔记202306学习笔记第四十七天-vue-强制缓存2
前端学习笔记202306学习笔记第四十七天-vue-强制缓存2
83 0
|
缓存 前端开发
前端学习笔记202306学习笔记第四十七天-协商缓存1
前端学习笔记202306学习笔记第四十七天-协商缓存1
39 0
|
缓存 前端开发
前端学习笔记202306学习笔记第四十七天-协商缓存3
前端学习笔记202306学习笔记第四十七天-协商缓存3
44 0