Redis -- 基础知识1

1.介绍

1.初识Redis

Redis:The open source, in-memory data store used by millions of developers as a database, cache, streaming engine, and message broker.

in-memory data:在内存中存储,Redis是在分布式系统中存储起作用的

解释:1.要清楚在单机下就能完成所有的任务时,Redis并没有用,因为可以直接存储变量进行访问。2.在分布式系统中,由于每一个进程之间有隔离性,那么想要把内存中的变量分享给别的主机其实得由网络传输。所以Redis就是以网络为基础,把自己内存中的变量交给其他主机进程能得到变量,达到共享使用。

database:提供数据库的功能

解释:1.MySQL可以提供数据库功能,但它也有缺点,就是效率慢,想要达到一个更快的性能那么就不太合适了。Redis作为数据库比MySQL快,这是因为Redis用内存存储,而MySQL存储在硬盘上。2.Redis的存储内存比MySQL小,所以对于海量数据不适用。

cache:把Redis作为cache来使用。

解释:1.将热点数据存储在Redis中,其他数据存储在MySQL中存储,这样达到了性能快存储多的结果。2.但是这个系统的复杂程度变麻烦了,并且数据修改时要涉及到Redis和MySQL的数据同步问题

streaming engine:作为消息中间件(消息队列),为生产消费者模型。当前很少使用。

分布式是关键。

2.分布式的基本架构

1. 单机模型

就是字面意思,由一台主机或者一个服务器实现所有的功能模块,其中这些模块自然就共同使用上面的所有资源。cpu,内存,寄存器,硬件等等。那么只要运行的东西够多,那么至少会有一个主机资源吃紧导致整体的效率低了,那么就想要进行优化。

1.开源:对吃紧的资源进行物理方面的扩充,加钱就行,不过这也有极限,一个主机最多也就能放那么老些东西

2.节流:需要有更强的数据结构和算法来疏通,这种情况会花费更多的精力和思路去编写代码

2.数据库分离模型

MySQL其实在主机上就是以一个服务器形式存在,我们使用客户端对数据库进行访问。那么可以将执行的应用与用于存储的数据库进行分离,那么此时可以将这两放到不同的服务器中去。那么此时为了增加利用率。应用服务器可以适当升级cpu和内存,而数据库服务器增加硬件,必要时使用SSD硬盘来存储大量数据。

3.应用服务器的集群架构与负载均衡

引入更多的应用服务器,用户请求增加会比较吃cpu和内存的资源,大量用户就需要有更多的应用服务器。用户将请求发送给负载均衡器,负载均衡器通过负载均衡的算法将请求较为均匀的分发给应用服务器群中,降低应用服务器承当的压力。其思路与多线程类似。负载均衡器接收请求的能力远超过应用服务器,每次处理请求和花费的内存都比较小,所以可以处理更多。如果负载均衡器承当不了,那么就可以有更多的负载均衡器,不过管理成本就提高很多,出现问题的概率也大。

4.数据库读写分离

如果应用服务器群对数据库读写都使用在同一个数据库服务器中,那么它承当的压力也很大

1.开源:引入更多的机器

2.节流:数据库优化,门槛高更复杂

数据库读写分离,并发多台服务器。主从结构的结构,不同的服务器定义为不同的角色,那么此时需要将不同角色的服务器进行不同的操作,时时进行数据同步。而一般读数据的频率比写的频率高。主服务器进行写,从服务器进行读,从服务器要同步主服务器的内容。

5.缓存的引入

数据库读硬盘,所以响应慢。把数据进行冷热区分,热点数据存放在缓存中,所有的数据都放在数据库中。缓存为了更快就只能存比较少的热点数据。引入缓存确实提高读取的效率了,但是更改数据后,我们需要对缓存的数据进行同步,那么也比较的复杂。这一缓存的实现就是使用Redis。

6.数据库分库分表

引入分布式系统,不光要应对更高的请求量,也要应对更多的数据量。有些数据占内存大,并且一台服务器难以存储下,这时就需要对这些数据库进行拆分,将其分库分表。

分库:MySQL上的逻辑集合表database,引入多个数据库服务器存储一个database或者多个database

分表:一个database存不下,那么就分表放入服务器中。

7.微服务结构

应用服务器处理内容太多导致服务器变得复杂,就需要对业务进行拆分为更小的服务器。每一个服务器处理一个业务,该结构就是微服务结构。一个或者多个服务器共同处理一个业务模块,方便程序员管理;更方便达到功能的复用;不同的服务进行不同的硬件资源部署提高利用率。

缺点:1.整个系统的性能下降。多个服务之间更依赖网络通信,保证性能就必须引入更多的硬件。2.系统复杂度变高,出现问题的概率变大了。需要一系列手段来管理,监控与运维。

3.概念介绍

应用/系统:一组服务器的程序

模块/组件:程序的某个独立的功能

分布式:引入多个主机协同配合完成工作,物理上的多个主机

集群:逻辑上的多个主机

主从结构:分布式系统常见结构。从节点的数据由主节点同步而来

中间件:与业务无关的服务,功能更通用的服务(数据库,缓存,消息队列等)

评价指标:

1.可用性(核心):当前系统整体可用的时间/总时间

2.响应时长:处理一次请求花费的时间

3.吞吐/并发:衡量系统处理请求的能力,能处理多少个请求

2.Redis的特性

1.在内存中存储数据:通过键值对的形式存储数据。是一种非关系型数据库

2.可编程的:通过交互式命令或者脚本来批量执行操作

3.可扩展的:在原有功能上扩展,本质是一个动态链接库

4.持久化的:Redis将数据存储在硬盘上,以内存为主,硬盘为辅的。保证效率最大化

5.支持集群:水平扩展

6.高可用:自身支持主从结构,从节点备份主节点的内容

Redis的操作与访问都快的原因:

1.存储在内存里,访问速率快

2.核心功能简单

3.网络角度,使用了IO多路转接技术

4.使用大多是单线程模式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

灼榆

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

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

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

打赏作者

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

抵扣说明:

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

余额充值