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

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

相关推荐
万zp1 小时前
RabbitMQ 03 在项目中的实际使用
分布式·rabbitmq
追光天使3 小时前
Hadoop 下载
大数据·hadoop·下载
数据知道3 小时前
【系统架构设计师-2022年】综合知识-答案及详解
架构·系统架构·软考高级·系统架构设计师·综合知识
WakeData惟客数据3 小时前
报告 | 以消费者为中心,消费品零售行业数字化建设持续深化
大数据·零售·零售数字化·惟客数据
Daniel521-Spark3 小时前
六、MySQL高级—架构介绍(1)
linux·数据库·mysql·架构·centos
nihui1237 小时前
从单体架构到微服务架构的演变,微服务带来的挑战是什么?
java·微服务·架构
never.....9 小时前
8个优质视频素材库,商用无忧
大数据·前端·新媒体运营·音视频·视频
ArchManual9 小时前
服务降级的架构原理
分布式·后端·微服务·架构·服务降级
wx74085132610 小时前
小琳Python课堂:Python高并发实现的基本原理(高阶版)
缓存·中间件