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

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

相关推荐
hstar952730 分钟前
二、即时通讯系统设计经验
java·架构
江梦寻44 分钟前
MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)
开发语言·后端·python·macos·架构·策略模式
线条12 小时前
大数据 ETL 工具 Sqoop 深度解析与实战指南
大数据·sqoop·etl
优秀的颜3 小时前
计算机基础知识(第五篇)
java·开发语言·分布式
Zfox_5 小时前
Redis:Hash数据类型
服务器·数据库·redis·缓存·微服务·哈希算法
呼拉拉呼拉5 小时前
Redis内存淘汰策略
redis·缓存
mazhafener1239 小时前
智慧照明:集中控制器、单双灯控制器与智慧灯杆网关的高效协同
大数据
打码人的日常分享9 小时前
物联网智慧医院建设方案(PPT)
大数据·物联网·架构·流程图·智慧城市·制造
咖啡啡不加糖9 小时前
Redis大key产生、排查与优化实践
java·数据库·redis·后端·缓存
白水baishui9 小时前
搭建强化推荐的决策服务架构
架构·推荐系统·强化学习·决策服务·服务架构