大数据-38 Redis 高并发下的分布式缓存 Redis简介 缓存场景 读写模式 旁路模式 穿透模式 缓存模式 基本概念等

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 大数据-38 Redis 高并发下的分布式缓存 Redis简介 缓存场景 读写模式 旁路模式 穿透模式 缓存模式 基本概念等

点一下关注吧!!!非常感谢!!持续更新!!!

目前已经更新到了:

Hadoop

HDFS

MapReduce

Hive

Flume

Sqoop

Zookeeper

HBase

Redis

章节内容

上一节我们完成了:


HBase Maven工程 POM引入

HBase JavaAPI

HBase Java实现 增、删、改、查

背景介绍

这里是三台公网云服务器,每台 2C4G,搭建一个Hadoop的学习环境,供我学习。

之前已经在 VM 虚拟机上搭建过一次,但是没留下笔记,这次趁着前几天薅羊毛的3台机器,赶紧尝试在公网上搭建体验一下。


2C4G 编号 h121

2C4G 编号 h122

2C2G 编号 h123

Redis简介

Redis(Remote Dictionary Server)远程字典服务。是用C语言开发的。

官方网站是:

http://redis.io/

Redis 数据类型

其中一共五种数据类型:


字符串类型

散列类型

列表类型

集合类型

有序集合类型

缓存场景

DB缓存

DB缓存,减轻DB服务器压力。

一般情况下数据存在数据库中,应用程序直接操作数据库。

当访问量上万,数据库压力增大,可以采取的方案有:


读写分离

分库分表

数据库的文件是在硬盘中,与内存做交换。

对于大量瞬时访问,会导致频繁IO而无法工作。


Session分离

传统的Session是由Tomcat自行维护和管理,在集群的Tomcat环境中,不同的Tomcat会有各自的Session。


各个Tomcat之间复制Session,性能损耗

不能保证Tomcat之间的Session实时同步

可以将登录后的Session信息存入 Redis 中,这样多个Tomcat服务器可以共享Session信息。

具体的整体架构图是:

分布式锁

一般锁是多线程 锁,但是在多个进程中,需要上锁的话,就需要分布式锁。


读写模式

旁路模式

Cache Aside Pattern 旁路缓存,是最经典的缓存+数据库读写模式

具体的方案是:读的时候,先读缓存,缓存没有再读数据库,读出后写入缓存。

代码逻辑上如下图:

当我们要更新数据的时候:先更新数据库,再删除缓存。

穿透模式

Read/Write Through Pattern 穿透读/穿透写 直接读/直接写 模式。


Read Through Pattern

Write Through Pattern

缓存模式

Write Behind Caching Pattern 只更新缓存模式

应用程序只更新缓存,缓存通过异步的方式将数据批量整合后写入DB。

不能实时同步数据,甚至宕机会丢数据。


Redis 适用场景

缓存使用,减轻DB压力

DB使用 用于临时存储数据

解决分布式场景下Session分离的问题

任务队列(秒杀,抢红包)乐观锁等等

应用排行榜

签到 bitmap

冷热数据交换

等等

缓存场景

Redis 常用于缓存系统,以提高数据读取速度并减轻数据库的负载。它可以存储经常访问的数据,如热门文章、用户信息、会话数据等。支持设置过期时间(TTL),自动清理过期的数据。


消息队列

Redis 的 List 结构和 Pub/Sub 功能可以用来实现消息队列,支持生产者和消费者模式。可以用于任务队列、异步处理等场景。


会话存储

Redis 被广泛用于会话管理,特别是在分布式系统中,可以共享会话数据。

由于其高性能和持久化选项,可以确保会话数据的快速读取和安全存储。


排行榜/计数器

Redis 的 Sorted Set 结构可以轻松实现排行榜功能。

适用于社交网络中的点赞数、游戏中的得分排名等场景。


实时分析

Redis 可以用于实时数据分析和统计,如网站的实时访问量统计、应用性能监控等。

通过其快速的读写性能,可以实时更新和查询统计数据。


地理位置存储

Redis 的 Geospatial 功能可以存储和操作地理位置信息,适用于位置查询、距离计算等场景。

可用于地图服务、物流跟踪等应用。


分布式锁

Redis 可以用于实现分布式锁,保证在分布式系统中的数据一致性。

通过 SET NX 和 EXPIRE 命令,可以创建具有超时机制的锁。


发布/订阅(Pub/Sub)系统

Redis 提供了发布/订阅消息模式,适用于实时消息传递和通知系统。

适用于聊天室、实时推送等场景。


数据结构存储

Redis 支持多种复杂数据结构,如字符串、哈希、列表、集合、有序集合等,可以满足多种数据存储需求。

适用于需要快速访问和操作复杂数据结构的场景。


流处理

Redis 5.0 引入了 Stream 数据结构,用于处理实时数据流。

适用于日志收集、事件溯源等场景。



相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
目录
相关文章
|
7月前
|
缓存 NoSQL 中间件
Redis,分布式缓存演化之路
本文介绍了基于Redis的分布式缓存演化,探讨了分布式锁和缓存一致性问题及其解决方案。首先分析了本地缓存和分布式缓存的区别与优劣,接着深入讲解了分布式远程缓存带来的并发、缓存失效(穿透、雪崩、击穿)等问题及应对策略。文章还详细描述了如何使用Redis实现分布式锁,确保高并发场景下的数据一致性和系统稳定性。最后,通过双写模式和失效模式讨论了缓存一致性问题,并提出了多种解决方案,如引入Canal中间件等。希望这些内容能为读者在设计分布式缓存系统时提供有价值的参考。感谢您的阅读!
273 6
Redis,分布式缓存演化之路
|
8月前
|
数据采集 人工智能 分布式计算
MaxFrame:链接大数据与AI的高效分布式计算框架深度评测与实践!
阿里云推出的MaxFrame是链接大数据与AI的分布式Python计算框架,提供类似Pandas的操作接口和分布式处理能力。本文从部署、功能验证到实际场景全面评测MaxFrame,涵盖分布式Pandas操作、大语言模型数据预处理及企业级应用。结果显示,MaxFrame在处理大规模数据时性能显著提升,代码兼容性强,适合从数据清洗到训练数据生成的全链路场景...
381 5
MaxFrame:链接大数据与AI的高效分布式计算框架深度评测与实践!
|
8月前
|
人工智能 分布式计算 大数据
MaxFrame 产品评测:大数据与AI融合的Python分布式计算框架
MaxFrame是阿里云MaxCompute推出的自研Python分布式计算框架,支持大规模数据处理与AI应用。它提供类似Pandas的API,简化开发流程,并兼容多种机器学习库,加速模型训练前的数据准备。MaxFrame融合大数据和AI,提升效率、促进协作、增强创新能力。尽管初次配置稍显复杂,但其强大的功能集、性能优化及开放性使其成为现代企业与研究机构的理想选择。未来有望进一步简化使用门槛并加强社区建设。
389 8
|
8月前
|
存储 缓存 NoSQL
云端问道21期方案教学-应对高并发,利用云数据库 Tair(兼容 Redis®*)缓存实现极速响应
云端问道21期方案教学-应对高并发,利用云数据库 Tair(兼容 Redis®*)缓存实现极速响应
232 1
|
8月前
|
缓存 NoSQL 关系型数据库
云端问道21期实操教学-应对高并发,利用云数据库 Tair(兼容 Redis®)缓存实现极速响应
本文介绍了如何通过云端问道21期实操教学,利用云数据库 Tair(兼容 Redis®)缓存实现高并发场景下的极速响应。主要内容分为四部分:方案概览、部署准备、一键部署和完成及清理。方案概览中,展示了如何使用 Redis 提升业务性能,降低响应时间;部署准备介绍了账号注册与充值步骤;一键部署详细讲解了创建 ECS、RDS 和 Redis 实例的过程;最后,通过对比测试验证了 Redis 缓存的有效性,并指导用户清理资源以避免额外费用。
157 1
|
10月前
|
机器学习/深度学习 分布式计算 算法
【大数据分析&机器学习】分布式机器学习
本文主要介绍分布式机器学习基础知识,并介绍主流的分布式机器学习框架,结合实例介绍一些机器学习算法。
1260 6
|
11月前
|
缓存 NoSQL Java
大数据-50 Redis 分布式锁 乐观锁 Watch SETNX Lua Redisson分布式锁 Java实现分布式锁
大数据-50 Redis 分布式锁 乐观锁 Watch SETNX Lua Redisson分布式锁 Java实现分布式锁
184 3
大数据-50 Redis 分布式锁 乐观锁 Watch SETNX Lua Redisson分布式锁 Java实现分布式锁
|
10月前
|
缓存 NoSQL 中间件
redis高并发缓存中间件总结!
本文档详细介绍了高并发缓存中间件Redis的原理、高级操作及其在电商架构中的应用。通过阿里云的角度,分析了Redis与架构的关系,并展示了无Redis和使用Redis缓存的架构图。文档还涵盖了Redis的基本特性、应用场景、安装部署步骤、配置文件详解、启动和关闭方法、systemctl管理脚本的生成以及日志警告处理等内容。适合初学者和有一定经验的技术人员参考学习。
730 7
|
9月前
|
SQL 分布式计算 算法
分布式是大数据处理的万能药?
分布式技术在大数据处理中广泛应用,通过将任务拆分至多个节点执行,显著提升性能。然而,它并非万能药,适用于易于拆分的任务,特别是OLTP场景。对于复杂计算如OLAP或批处理任务,分布式可能因数据交换延迟、非线性扩展等问题而表现不佳。因此,应先优化单机性能,必要时再考虑分布式。SPL等工具通过高效算法提升单机性能,减少对分布式依赖。