高并发分布式缓存 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
相关文章
|
29天前
|
存储 缓存 NoSQL
解决Redis缓存数据类型丢失问题
解决Redis缓存数据类型丢失问题
172 85
|
4天前
|
存储 缓存 NoSQL
云端问道21期方案教学-应对高并发,利用云数据库 Tair(兼容 Redis®*)缓存实现极速响应
云端问道21期方案教学-应对高并发,利用云数据库 Tair(兼容 Redis®*)缓存实现极速响应
|
4天前
|
缓存 NoSQL 关系型数据库
云端问道21期实操教学-应对高并发,利用云数据库 Tair(兼容 Redis®)缓存实现极速响应
本文介绍了如何通过云端问道21期实操教学,利用云数据库 Tair(兼容 Redis®)缓存实现高并发场景下的极速响应。主要内容分为四部分:方案概览、部署准备、一键部署和完成及清理。方案概览中,展示了如何使用 Redis 提升业务性能,降低响应时间;部署准备介绍了账号注册与充值步骤;一键部署详细讲解了创建 ECS、RDS 和 Redis 实例的过程;最后,通过对比测试验证了 Redis 缓存的有效性,并指导用户清理资源以避免额外费用。
|
1月前
|
消息中间件 架构师 数据库
本地消息表事务:10Wqps 高并发分布式事务的 终极方案,大厂架构师的 必备方案
45岁资深架构师尼恩分享了一篇关于分布式事务的文章,详细解析了如何在10Wqps高并发场景下实现分布式事务。文章从传统单体架构到微服务架构下分布式事务的需求背景出发,介绍了Seata这一开源分布式事务解决方案及其AT和TCC两种模式。随后,文章深入探讨了经典ebay本地消息表方案,以及如何使用RocketMQ消息队列替代数据库表来提高性能和可靠性。尼恩还分享了如何结合延迟消息进行事务数据的定时对账,确保最终一致性。最后,尼恩强调了高端面试中需要准备“高大上”的答案,并提供了多个技术领域的深度学习资料,帮助读者提升技术水平,顺利通过面试。
本地消息表事务:10Wqps 高并发分布式事务的 终极方案,大厂架构师的 必备方案
|
27天前
|
缓存 监控 NoSQL
Redis经典问题:缓存穿透
本文详细探讨了分布式系统和缓存应用中的经典问题——缓存穿透。缓存穿透是指用户请求的数据在缓存和数据库中都不存在,导致大量请求直接落到数据库上,可能引发数据库崩溃或性能下降。文章介绍了几种有效的解决方案,包括接口层增加校验、缓存空值、使用布隆过滤器、优化数据库查询以及加强监控报警机制。通过这些方法,可以有效缓解缓存穿透对系统的影响,提升系统的稳定性和性能。
|
2月前
|
缓存 NoSQL 关系型数据库
大厂面试高频:如何解决Redis缓存雪崩、缓存穿透、缓存并发等5大难题
本文详解缓存雪崩、缓存穿透、缓存并发及缓存预热等问题,提供高可用解决方案,帮助你在大厂面试和实际工作中应对这些常见并发场景。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:如何解决Redis缓存雪崩、缓存穿透、缓存并发等5大难题
|
2月前
|
存储 缓存 NoSQL
【赵渝强老师】基于Redis的旁路缓存架构
本文介绍了引入缓存后的系统架构,通过缓存可以提升访问性能、降低网络拥堵、减轻服务负载和增强可扩展性。文中提供了相关图片和视频讲解,并讨论了数据库读写分离、分库分表等方法来减轻数据库压力。同时,文章也指出了缓存可能带来的复杂度增加、成本提高和数据一致性问题。
【赵渝强老师】基于Redis的旁路缓存架构
|
2月前
|
缓存 NoSQL Redis
Redis 缓存使用的实践
《Redis缓存最佳实践指南》涵盖缓存更新策略、缓存击穿防护、大key处理和性能优化。包括Cache Aside Pattern、Write Through、分布式锁、大key拆分和批量操作等技术,帮助你在项目中高效使用Redis缓存。
412 22
|
2月前
|
缓存 NoSQL PHP
Redis作为PHP缓存解决方案的优势、实现方式及注意事项。Redis凭借其高性能、丰富的数据结构、数据持久化和分布式支持等特点,在提升应用响应速度和处理能力方面表现突出
本文深入探讨了Redis作为PHP缓存解决方案的优势、实现方式及注意事项。Redis凭借其高性能、丰富的数据结构、数据持久化和分布式支持等特点,在提升应用响应速度和处理能力方面表现突出。文章还介绍了Redis在页面缓存、数据缓存和会话缓存等应用场景中的使用,并强调了缓存数据一致性、过期时间设置、容量控制和安全问题的重要性。
54 5
|
2月前
|
缓存 NoSQL 中间件
redis高并发缓存中间件总结!
本文档详细介绍了高并发缓存中间件Redis的原理、高级操作及其在电商架构中的应用。通过阿里云的角度,分析了Redis与架构的关系,并展示了无Redis和使用Redis缓存的架构图。文档还涵盖了Redis的基本特性、应用场景、安装部署步骤、配置文件详解、启动和关闭方法、systemctl管理脚本的生成以及日志警告处理等内容。适合初学者和有一定经验的技术人员参考学习。
301 7