REmote DIctionary Server(Redis) 是一个由 Salvatore Sanfilippo 写的 key-valu存储系统 是跨平台的非关系型数据库。Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库 并提供多种语言的 API。Redis 通常被称为数据结构服务器 因为值 value 可以是字符串(String)、哈希(Hash)、列表(list)、集合(sets)和有序集合(sorted sets)等类型。
2.特征1.NoSQL
2.分布式缓存中间件
3.key-value
4.提供海量的数据存储访问
5.所有数据放在内存中 访问数据非常快
6.非关系型 分布式 支持水平扩展 开源
redis线程模型采用的是单线程模型 因为它是基于一个文件事件处理模型 而且该文件处理模型是单线程所以redis也是单线程的。那么这个文件事件处理器概含那些部分呢 它又是如何工作的呢。
文件事件处理模型如上图主要包含以下几部分
1.Socket 一个redis服务器可以被多个redis客户端连接 这里的socket就代表着我们每一个连接着redis服务器的客户端 负责监听所以客户端的请求。
2.I/O多路复用器 服务器既然能被多个客户端连接 那么难免会出现请求并发的情况 I/O多路复用器负责监听各个socket 每当监听到socket的时候会将该socket放入一个队列 进而就将多客户端并发的这种请求转变成了队列这种串形方式
3.文件事件分配器 负责将I/O队列里的事件读取处理 然后分派给各个处理器进行处理。
4.事件处理器 负责处理对应的事件 事件处理器又包含3部分 连接应答处理器 命令请求处理器 命令回复处理器。
5.AE_Readable事件 当客户端连接到服务器 被socket监听到就会产生一个对应? ??? ??AE_Readable事件。
6.AE_Writeable事件 当文件事件分配器分配事件到具体事件处理器事就会产生对? ??? ??对应的AE_Writeable事件。
1.当redis客户端向服务器端发起一个写操作请求 Server Socket监听到请求后会产? ??? ??生一个AE_Readable事件。
2.I/O多路复用器监听的socket后 将其放入队列中。
3.文件事件分配器从队列读取到事件后 将该事件分配给连接应答处理器 这时候会产生一个与客户端映射的socket 并将该socket与命令请求处理器绑定 这时候如果客户端请求某些操作时 例如本次请求写操作 这时候命令请求处理器就会执行对应的命令。
4.命令请求处理器处理完命令后 会将该socket与命令回复处理器绑定 并且会将请求结果返回给客户端。
Knative 是基于 Kubernetes 的开源 Serverless 应用编排框架。阿里云 Knative 在...
作者 许力 阿里云原生多模数据库Lindorm与东软云科技推出联合解决方案 共建面向...
年味到底是什么?不同的时代,人们迎接春节的方式也在变换。 在70后的眼里,年味...
?又到一年毕业季,即将开启(实习及正式)职场生涯的同学们会有不少疑惑。比如,...
1.男女之间是真的可以有纯友谊的,只要一个打死不说一个装傻到底。 2.不要迷恋...
新冠肺炎疫情的全球大流行不仅深刻影响了世界政治经济格局的发展演进,而且加速...
1.我手机掉进厕所了怎么办?是屎在给我发信息吗? 2.生活就像新闻联播,不是换...
数据目录已成为企业数据管理策略的重要组成部分,但选择合适的数据目录并不是简...
1.世界上最悲哀的事莫过于睡眠不足,尤其是在感冒的时候。 2.我是一个很有原则...
我们将创建以下三个Shell脚本来锁定和解锁多个帐户和查看账号状态。 创建锁定用...