论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
应用中心
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
qidao123.com技术社区-IT企服评测·应用市场
»
论坛
›
数据库
›
Mysql
›
【Redis】壹 —— Redis 先容
【Redis】壹 —— Redis 先容
兜兜零元
论坛元老
|
2024-12-11 08:26:53
|
显示全部楼层
|
阅读模式
楼主
主题
1818
|
帖子
1818
|
积分
5454
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
文章目次:
媒介
一、熟悉Redis
1. Redis
用途
作为数据库
作为流引擎
二、服务端高并发分布式结构演变
1. 单机架构
2. 应用数据分离架构
3. 应用服务集群架构
4. 读写分离 / 主从分离架构
5. 冷热分离 —— 引入缓存
6. 分库分表
7. 微服务架构
8. 概念补充
三、Redis的特性
四、Redis的应用场景
1. 作为数据库
2. 作为缓存 / session存储
3. 作为消息队列
媒介
开始了对Redis的学习,通过博客对这一段时间的学习进行总结、分享!
一、熟悉Redis
我们先来看一下Redis官方对于Redis的描述
此中的关键词:“in - memory data store” ——> 在内存中存储数据
我们之前写的单机程序,都是通过变量来在内存中存储数据;
而对于分布式系统,多个历程同时访问一个变量,就大概会引起线程安全问题,所以在分布式系统中,使用Redis在内存中存储数据;
由于历程具有隔离性,每个历程的内存空间是分隔开的,使用网络,可以进行历程之间的通信;
1. Redis
Redis
——
Re
mote
Di
ctionary
S
erver
用途
基于网络,把自己内存中的变量给别的历程/别的主机的历程使用
作为数据库
Redis也可以作为数据库来使用,那Redis相较于一般数据库(比方:MySQL、Oracle、SQL Server)有什么优点呢???
最大的优点,就是 —— 快!!
由于Redis是在
内存
中存储数据,而数据库是在
硬盘
中存储数据,程序访问内存的速度远远大于访问硬盘的速度,但也正因云云,Redis作为数据库也有一定的
缺点 —— 存储空间小
关于速度,这里有谷歌公司给出的各层级硬件的执行速度供大家参考
那有没有方法做到
又大又快
呢??当然有!那便是——
将数据库和Redis结合起来,将
Redis当作数据库的缓存
(Cache),那缺点便是,程序的复杂性提高了。。。
作为流引擎
在官方先容中,尚有一个关键词 :Streaming Engine —— 流引擎
作用:作为一个消息中间件,消息队列,分布式系统下的生产者消费者模子
二、服务端高并发分布式结构演变
上文提到“单机程序”、“分布式系统”,那什么是单机程序?什么是分布式系统?单机程序又是怎样一步步演化为分布式系统的呢?
1. 单机架构
只有一台服务器,这台服务器负责所有的工作
此中:
应用服务:服务器程序——>写HTTP服务
数据库服务:数据库服务器
缺点:业务进一步增长之后,一台服务器难以应付,一台主机的硬件资源是有限的(硬件资源包括但不限于:CPU、内存、硬盘、网络……)
解决方式:
开源节流
开源 ——> 引入更多的硬件资源 ——> 主机能增加的硬件资源也是有上限的 ——> 引入多台主机 ——> 程序上进行适配 ——> 分布式系统
节流 ——> 优化,通过性能测试找出程序瓶颈,进行优化
2. 应用数据分离架构
应用服务和数据库服务在不同主机上完成
此中:
可以针对不同服务器的特点针对性的配置资源 —— 更高的性价比 :
应用服务器 —— 包罗很多业务逻辑 —— 更好的CPU和内存
数据库服务 —— 更大的硬盘空间和更快的数据访问速度 or 固态硬盘(SSD)
3. 应用服务集群架构
引入更多的服务器节点
此中:
负载平衡器(网关):
也是一个单独的服务器
用户的请求先到达负载平衡器,由负载平衡器将请求分发给不同的应用服务器
负载平衡算法:最简单 —— 轮询算法(Round Robin) ——> 轮着来
对请求量的负担能力:
负载平衡器对请求的负担能力远远超越应用服务器
如果当前网关蒙受不了了,引入更多的负载平衡器 ——> 更多机房
4. 读写分离 / 主从分离架构
一主多从分离
5. 冷热分离 —— 引入缓存
引入缓存来存储被频仍访问的数据
此中:
热门数据:被频仍访问到的数据
Redis的应用场景就是缓存服务器
数据库中仍然存储的是全量数据,缓存服务器中存储的是热门数据的缓存
二八原则:20%的数据量可以支持80%的访问量
6. 分库分表
对数据进行拆分
7. 微服务架构
对业务进行拆分 —— 服务器的种类和数量增加
为了方便代码的维护,可以把复杂的服务器划分为更多的、功能单一、更小的微服务器
8. 概念补充
应用/系统
应用:一个/组服务器程序
模块/组件
一个程序实现了许多功能,每个独立的功能就叫一个模块/组件
分布式(Distributed)
引入多个主机/服务器,协同配合完成一系列的工作
物理层面多个主机
集群(Cluster)
引入多个主机/服务器,协同配合完成一系列的工作
逻辑层面多个主机
主从(Master / Slave):
分布式系统中一种典型的结构
多个服务器,一个是主节点,其他的是从节点,从节点要从主节点同步数据
中间件(Middleware)
和业务无关的服务(功能更通用的服务)
可用性(Availablity)
考察单位时间段内,系统可以正常提供服务的概率/期望。
相应时间(Response Time RT)
指用户完成输入到系统给出相应的时间
吞吐率(Throughput)/并发量(Concurrent)
权衡服务器处理请求的能力的
三、Redis的特性
1. 在内存中存储数据
不同于关系型数据库通过表来构造数据,Redis是通过键值对的方式来构造数据(非关系型数据库)
key:只能是string类型
value:可以是string、list、hash、set......类型
2. Programmability
针对Redis的操作,可以直接通过简单的交互式下令进行操作,也可以通过一些脚本的方式,批量进行一些操作
3. Extensibility
可以在Redis原有的功能底子上再进行扩展,Redis提供了一组API
4. Persistence 长期化
Redis是在内存中访问数据,而内存中的数据是易丢失的,Redis会将数据存储在硬盘中,当Redis重启了,就会在重启时加载硬盘的数据规复到重启之前的状态
5. Clustering
Redis作为一个分布式系统中的中间件,可以或许支持集群
Redis可以水平扩展(相当于对数据库进行分库分表),可以引入多个主机,摆设多个Redis节点,每个Redis存储数据的一部门
6. High Availability 高可用
Redis自身也支持“主从”结构,从节点相当于主节点的备份
四、Redis的应用场景
1. 作为数据库
大多数环境下,对于数据库的要求优先考虑是“大”,但也有一些环境,对于数据库的要求是“快”,这种环境下,就可以使用Redis作为数据库
例:广告搜刮 / 贸易搜刮 ——> 对性能要求很高,就必要把必要检索的数据存储在内存中
2. 作为缓存 / session存储
作为缓存
:
对数据进行冷热分离
session存储
:
cookie通过session配合实现用户身份信息的保存
cookie:浏览器存储的用户的身份标识(SessionId)
session:服务器存储的用户数据
session一般存储与应用服务器中,而在分布式系统中:存在多个应用服务器,用户通过登录,其session存在一个应用服务器中,下次请求如果被负载平衡器分配到另一个应用服务器中,新的服务器中没有保存改用的session,就必要重新登岸
解决方案:
让负载平衡器,将一个用户的请求分配给同一个服务器(不能接纳轮询了)
让Redis存储session,应用服务器在读取会话通过访问Redis服务器,如许一个用户的请求就可以被分配到任意的应用服务器上了;当应用程序重启时,会话不丢失。
3. 作为消息队列
基于这个可以实现一个网络版本的生产者-消费者模子
对于分布式系统来说,服务器和服务器之间偶然候也必要用到生产者-消费者模子
优势:
1. 解耦合
2. 削峰填谷
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
继续阅读请点击广告
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
兜兜零元
论坛元老
这个人很懒什么都没写!
楼主热帖
数据库的建立、增、删、改、查 ...
深入解析kubernetes中的选举机制 ...
【黄啊码】MySQL入门—4、掌握这些数据 ...
clang-format的使用
Oracle调度器Scheduler
MySQL安装配置
V Rising 服务器搭建
02-MySQL高级
2万多条健康网站文章大全ACCESS\EXCEL ...
【黄啊码】MySQL入门—5、数据库小技巧 ...
标签云
国产数据库
集成商
AI
运维
CIO
存储
服务器
浏览过的版块
人工智能
前端开发
linux
快速回复
返回顶部
返回列表