认识Redis

发布于:2025-07-30 ⋅ 阅读:(18) ⋅ 点赞:(0)

1.介绍Redis 

        Redis的初心是作为一个“消息中间件”(消息队列)使用的,但是当前很少会直接使用Redis作为消息中间件,因为业内有很多更专业的消息中间件

        Redis的作用是在内存中存储数据,但是我们平常写的程序不就是在内存中存储数据吗?

        其实那是因为Redis的应用场景是分布式系统,我们平常写的程序是单机程序,对于单机程序而言其实直接通过变量存储数据的方式是比使用Redis更优的选择。至于分布式为什么要使用Redis则是因为进程的隔离性,为了使进程间进行通信我们的Redis就基于网络,把自己存储在内存中的变量给别的进程,甚至是别的主机的进程使用

        Redis也可以作为数据库使用相对于mysql我们的Redis有哪些优势和劣势呢?

        首先mysql的最大问题在于,访问速度比较慢,但是很多的互联网产品对于性能要求是很高的。Redis作为数据库使用的快,当然这是定性的角度,因为mysql是从磁盘拿数据而redis是从内存中拿数据,访问磁盘的速度相对于访问内存是非常慢的。

        Redis的缺点也很明显,因为数据是存储在内存的,所以存储的空间是非常有限的

        

        基于上面的问题我们就会想有没有像C++里的deque一样的东西既这样又那样比如“又快又大”,这里的典型方案就是把redis和mysql结合起来使用,网络中的数据大多满足“二八原则”,即20%的热点数据,可以满足80%的访问需求。让我们的redis来存储我们的热点数据,而mysql存储全部的数据,当我们的用户访问数据是会先到redis中查询,如果redis中没有找到才会到MySQL中查询,这样就能大大提高我们的查询速度。但是将mysql和redis结合起来使用会导致程序的复杂程度大大提升,而且数据发生修改时,还涉及到Redis和mysql之间的数据同步问题

2.分布式系统

        单机架构只有一台服务器,这个服务器负责所有的工作

        其实单机程序能将数据库服务去掉,光一个应用服务器及负责业务,又负责数据存储,但是这样比较麻烦.

        就目前而言大部分的公司的产品,都是单机架构,这是因为单机架构本身开发较为简单,而且现在的计算机硬件,发展速度非常之快,哪怕只有一台主机性能也是非常高的,可以支持非常高的并发 && 非常大的数据存储

        如果业务进一步增长,用户量和数据量都水涨船高,一台主机难以应付时,就需要引入更多的主机,引入更多的硬件资源

        如果真的遇见了这样服务器不够用的场景,我们的处理方式有两种分别时开源 和 节流

        1.开源:简单粗暴,就是增加更多的硬件资源,但是一个主板上能增加的硬件资源也是有限的,取决于主板的扩展能力。一台主机扩展到极限了,但是还是不能满足业务的需求,就只能引入更多的主机了。但是这并不是说新买的机器买来就可以直接解决问题了,也需要对软件做出相应的调整和适配。一旦引入了多台主机,我们的系统就可以称为“分布式系统了”

        2.节流:软件上的优化,对程序猿的水平要求比较高,需要通过性能测试,找到哪个环节出现了瓶颈,再去对症下药。

        下面是分布式系统的演化过程,对于这些架构其实都有确切的名称,这些会在我的docker专题进行讲解。


网站公告

今日签到

点亮在社区的每一天
去签到