了解Redis,第一弹,什么是RedisRedis主要适用于分布式系统,用来用缓存,存储数据,在内存中存储那么为什么说是分布式呢?什么叫分布式什么是单机架构微服务架构微服务的本质

本文涉及的产品
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云原生内存数据库 Tair,内存型 2GB
简介: 了解Redis,第一弹,什么是RedisRedis主要适用于分布式系统,用来用缓存,存储数据,在内存中存储那么为什么说是分布式呢?什么叫分布式什么是单机架构微服务架构微服务的本质

什么是Redis

Redis主要适用于分布式系统,用来用缓存,存储数据,在内存中存储

那肯定也有人会好奇

内存那么大点地方,能存多少数据啊

这个就说到要点上来了,Redis的特性就是快,但是缺点也很明显他的存储量小,而我们的mysql,他的优点是什么呢?,存储量大,但是慢。

那么我们在生活中,往往会使用Redis和mysql结合去使用,为什么这么使用,因为我们生活中的“二八原则”,什么是二八原则呢?20%的数据,满足80%的需求

这么说就明白了,大部分人玩王者荣耀这游戏,都是用于去打排位,打匹配,获取段位信息这种,这就是20%,其他的80%是什么聊天记录,道具,亲密关系,老友回归这种。

那么这样还带来一个代价,就是系统的负责度就会大大提高,数据发生修改的时候,涉及到,Redis和MYSQL之间的数据同步问题。

那么为什么说是分布式呢?

因为,如果是单机程序,直接通过变量存储数据的方式是比Redis更优的选择。

因为进程具有隔离型,每个进程都是隔离开的,A无法访问进程的量

进程间通信:通过网络(Redis基于网络,可以把自己内存中的变量给别的进程,甚至别的主机的进程进行使用。

什么叫分布式

什么是单机架构

单机架构:只有一台服务器

硬件越来越牛掰。当然如果业务进一步要求提升,用户上升,此时就要分布式,引入更多硬件资源

一台主机的硬件资源有上限!,包括但是不限于

1.CPU

2.内存                                      服务器每收到一个请求,都是消耗上述的一些资源

3.硬盘

4.网络

如果同一时刻,请求多了,此时就可能导致某个硬件资源不够用,无论哪个方面出错了,都可能导致服务器处理请求的时间变长,甚至处理出错。

当然如果真遇到了服务器不够用的场景

1.开源 ->加更多硬件资源(一台机器扩张到极限了,软件商就要做出调整,不是粗暴的买机器,当然引入分布式,系统复杂度大大提高)

2.节流 ->软件上优化(需要通过性能测试,找到哪个环节出现瓶颈,再去对症下药                        

用户请求,会先到达负载均衡器/网关服务器(单独的一个服务器)

负载均衡器,看是承担了所有的请求啊,那他能扛住吗?

他就像是做核酸,组织排队不是费时的,扣嗓子才费时间,分配任务是不耗费时间的,应用服务器承担的具体业务,执行的时间会更长。

增加应用服务器,确实能处理更多请求,但是存储服务器的承担请求也变多了,

相信到了这里,你已经知道,为啥要用redis的原因了,我们在采用redis作为缓存,这也会有下一个问题,应用程序修改存储服务器的时候,缓存服务器能不能修改成功呢?

引入分布式系统:不仅要面对更高的并发量,还要有更大的数据量

我们针对数据库进行进一步拆分的同时,我们也可以对表进行拆分

这也就需要引入微服务

微服务架构

一个服务器程序上,做了很多业务,导致这个服务器代码变的复杂,为了方便代码的维护,就可以把这样一个复杂服务器,拆分成更多功能单一的服务器

微服务的本质

当服务器复杂了,势必就要更多人来维护,当人多了,就要配套的管理,把这里的这些人组织好(防止他们摸鱼),每个组分别配备领导进行管理

引入微服务:解决了人的问题,但是有代价:

1.系统性能下降(要想保证性能不下降太多,还是引入机器,拆下更多的服务,多个功能之间更依赖网络通信,虽然这样代价更好,但是现代科技的万兆网卡,也是非常牛逼的)

2.系统复杂度高,可用性收到影响,服务器多了,遇到的问题更多(这也需要更多的手段,保证系统可用性,更丰富的监控报警,配套的运维人员)

微服务的优势:

1.解决人的问题

2.使用微服务,可以更方便功能的复用

3.可以给不同的服务进行不同的部署

架构推进

应用(application)/系统(System):一个应用,就是一个组服务器程序
模块(Module)/组件(Component):一个应用,里面有多个功能,每个独立的功能,就可以称为一个模块/组件

可用性:系统整体可用的时间/总的时间
响应时长:衡量服务器性能->(越小越好)
吞吐(Throughput)VS并发(concurrent):衡量系统处理请求的能力,衡量性能的一种方式

Redis的特性

MYSQL主要通过表的方式来存储数据的"关系型数据库"

Redis主要是通过键值对方式来存储组织数据的"非关系型数据库"

快:

为什么Redis快

1.Redis数据在内存中就比访问硬盘的数据库要快很多,

2.Redis内部核心逻辑都很简单,数据结构,也是比较简单的操作内存的数据结构

3.从网络角度上,Redis采用了IO多路复用的方式(一个线程管理多个socket

4.Redis使用的单线程(虽然更高版本的Redis引入的多线程),这样的单线程,减少了不必要的竞争者(多线程提高效率的前提是,CPU密集型的任务,使用多个线程可以充分利用cpu多核资源)

5.使用c语言编写(不咋可信,因为mysql也是C编写的,没人问不说)

Redis核心任务:操作内存的数据结构,不吃很多cpu

什么时候用这个Redis

搜索引擎->广告搜索,把所有需要检索的数据都存在内存中,Redis存的是全量数据,这里的数据也不能随便丢。

Redis 可做缓存,数据库,消息队列。

这里的问题:由于负载均衡器随机分配应用服务器,把请求发送到一个应用服务器后,在这个服务器上产生会话,下次发送请求的时候,这个有可能分配到其他没有会话关系的数据。

解决:想办法让负载均衡,把同一个用户的请求始终打在同一个机器上(不是轮询,而是通过userId之类的方式来分配机器)


相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
4天前
|
关系型数据库 分布式数据库 数据库
PolarDB,阿里云的开源分布式数据库,与微服务相结合,提供灵活扩展和高效管理解决方案。
【7月更文挑战第3天】PolarDB,阿里云的开源分布式数据库,与微服务相结合,提供灵活扩展和高效管理解决方案。通过数据分片和水平扩展支持微服务弹性,保证高可用性,且兼容MySQL协议,简化集成。示例展示了如何使用Spring Boot配置PolarDB,实现服务动态扩展。PolarDB缓解了微服务数据库挑战,加速了开发部署,为云原生应用奠定基础。
20 3
|
12天前
|
存储 缓存
使用tp5内cache缓存,存储手机短信验证码
使用tp5内cache缓存,存储手机短信验证码
16 1
|
13天前
|
存储 搜索推荐 Java
微服务SpringCloud ES分布式全文搜索引擎简介 下载安装及简单操作入门
微服务SpringCloud ES分布式全文搜索引擎简介 下载安装及简单操作入门
25 2
|
16天前
|
XML 分布式计算 Hadoop
分布式系统详解--框架(Hadoop-单机版搭建)
分布式系统详解--框架(Hadoop-单机版搭建)
35 0
分布式系统详解--框架(Hadoop-单机版搭建)
|
3天前
|
缓存 Devops 微服务
微服务01好处,随着代码越多耦合度越多,升级维护困难,微服务技术栈,异步通信技术,缓存技术,DevOps技术,搜索技术,单体架构,分布式架构将业务功能进行拆分,部署时费劲,集连失败如何解决
微服务01好处,随着代码越多耦合度越多,升级维护困难,微服务技术栈,异步通信技术,缓存技术,DevOps技术,搜索技术,单体架构,分布式架构将业务功能进行拆分,部署时费劲,集连失败如何解决
|
9天前
|
缓存 NoSQL 数据库
分布式系统面试全集通第一篇(dubbo+redis+zookeeper----分布式+CAP+BASE+分布式事务+分布式锁)
分布式系统面试全集通第一篇(dubbo+redis+zookeeper----分布式+CAP+BASE+分布式事务+分布式锁)
18 0
|
9天前
|
存储 运维 Prometheus
微服务监控:确保分布式系统的可观察性与稳定性
微服务监控:确保分布式系统的可观察性与稳定性
|
10天前
|
关系型数据库 容器 微服务
微服务和分布式交易
微服务和分布式交易
|
16天前
|
存储 消息中间件 数据库
分布式系统详解--架构简介(微服务)
分布式系统详解--架构简介(微服务)
28 0
|
机器学习/深度学习 缓存 NoSQL