Hadoop-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语言开发的。

官方网站是:

shell 复制代码
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 数据结构,用于处理实时数据流。

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

相关推荐
Loving_enjoy14 分钟前
基于Hadoop的明星社交媒体影响力数据挖掘平台:设计与实现
大数据·hadoop·数据挖掘
浮尘笔记21 分钟前
go-zero使用elasticsearch踩坑记:时间存储和展示问题
大数据·elasticsearch·golang·go
千层冷面38 分钟前
RabbitMQ 发送者确认机制详解
分布式·rabbitmq·ruby
ChinaRainbowSea40 分钟前
3. RabbitMQ 的(Hello World) 和 RabbitMQ 的(Work Queues)工作队列
java·分布式·后端·rabbitmq·ruby·java-rabbitmq
〆、风神42 分钟前
Guava Cache 实战:构建高并发场景下的字典数据缓存
缓存·guava
敖正炀1 小时前
基于RocketMQ的可靠消息最终一致性分布式事务解决方案
分布式
uhakadotcom1 小时前
Julia语言:高性能数值计算的新星
面试·架构·github
碳基学AI2 小时前
哈尔滨工业大学DeepSeek公开课:探索大模型原理、技术与应用从GPT到DeepSeek|附视频与讲义免费下载方法
大数据·人工智能·python·gpt·算法·语言模型·集成学习
一个天蝎座 白勺 程序猿3 小时前
大数据(4.6)Hive执行引擎选型终极指南:MapReduce/Tez/Spark性能实测×万亿级数据资源配置公式
大数据·hive·mapreduce
一條狗3 小时前
随笔 20250402 分布式 ID 生成器 Snowflake 里面的坑
分布式