Redis篇一:初识Redis

前言

  The open source,in-memory data store used by millions of developers as a database,cache streaming engine,and message broker.——开源的内存数据存储,被数百万开发人员用作数据库、缓存流引擎和消息中间件。

1. 初始Redis

  Redis是在内存中存储数据的,而我们平时定义的变量就是在内存中的,那么Redis在什么场景下才有用呢?这么想在平时确实没有用,但是其实它是需要在分布式系统中,才会有效果的。如果只是单机程序,直接通过变量存储数据是更好的方式。
  那么说来说去Redis到底是用来干什么的呢?在学习进程部分,我们知道进程是具有隔离性的,彼此之间是无法看到对方的数据的,如果想进行通信,那么就需要双方先看到同一份资源……。
  在进程通信中,有一种方式是通过网络来进行的,我们可以通过网络来实现一个主机的不同进程之间的通信,或者是不同主机之间进程的通信。而Redis就是基于网络,可以把自己内存中的数据给其他进程,甚至是其他主机的进程使用。

2. MySQL VS Redis

  MySQL是目前主流的数据库,但是它有一个很大的问题, 就是它的访问速度很慢,在一些产品中,对于性能要求很高,那么此时MySQL就不太适用了。而Redis也可以当作数据库使用,由于它是在内存中存储的,而MySQL是在硬盘中存储的,所以在效率上Redis是远高于MySQL的。
  自然它也是有缺点的,我们都知道内存相比较硬盘,肯定是小的多的,所以使用Redis作数据库相比较MySQL,存储的数量是比较小的。
  那么有没有方式做到效率又快,存储的数据又多呢?典型的方案就是,将Redis和MySQL进行结合,将Redis作为MySQL的缓存,也就是使用Redis存放热点数据,相当于作为一段缓冲区。但是也有一些其他的代价,比如MySQL和Redis之间的数据同步。

3. 什么是分布式系统(也是一种处理大量数据时的处理方式)

3.1 单机架构

  我们先来看看一个单机架构,就是只有一台服务器,这个服务器负责所有的工作。
  初期,我们需要利用我们精干的技术团队,快速将业务系统投⼊市场进行检验,并且可以迅速响应变化要求。但好在前期用户访问量很少,没有对我们的性能、安全等提出很高的要求,而且系统架构简单,无需专业的运维团队,所以选择单机架构是合适的。
在这里插入图片描述
  如果用户量和数据量都不高的话,那么一台主机就可以完成高并发和数据存储,而当用户量和数据量越来越高的时候,一台主机不足以支撑的时候,就需要引入更多的主机来分摊压力,这就是我们所说的分布式系统,也就是使用多台主机进行服务。
  但是引入分布式系统,是一种万不得已的决策,一旦引入分布式,那么系统的复杂度就会大大增加,不是双倍,而是指数的程度增加,bug出现的概率也会增加……

3.2 数据库与应用服务分离

  随着系统的上线,我们不出意外地获得了成功。市场上出现了⼀批忠实于我们的用户,使得系统的访问量逐步上升,逐渐逼近了硬件资源的极限,同时团队也在此期间积累了对业务流程的⼀批经验。面对当前的性能压力,我们需要未⾬绸缪去进行系统重构、架构挑战,以提升系统的承载能力。但由于预算仍然很紧张,我们可以选择将应用和数据分离的做法,可以最小代价的提升系统的承载能力。

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不如小布.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值