redis之所以可以高效的执行命令,单线程每秒qps达到10w左右,是因为起io多路复用技术效率很高。 io多路复用解决了什么问题? 没有io多路复用,那么当服务器操作某一个fd执行read的时候,如果fd对应的客户端没有执行写操作,那么服务端就会阻塞,这个时候客户端2来了数据,服务端就没办法读取了 ...
分类:
其他好文 时间:
2020-05-24 10:13:55
阅读次数:
43
redis号称单机QPS可达10万。为什单线程的redis竟然能达到这么高的qps? 网上有很多大佬已经给我们总结好了: 1、完全是内存操作 2、单线程处理 3、高效的数据结构,redis有自己的一套数据结构 4、使用多路复用i/o模型,非阻塞 5、其他方面的优化 我想多问几个问题: 第一点,red ...
分类:
其他好文 时间:
2020-05-24 00:26:31
阅读次数:
71
1. http协议2.0有什么特点 完全采用二进制格式 更稳定 多路复用 单个连接可以进行多次数据的传输 Header压缩 http2.0维护一个字典,差量更新http头部,大大降低头部传输产生的流量 服务端推送 服务端可以把index.html需要的静态资源一并发送到客户端,省去了客户端重复请求的 ...
分类:
Web程序 时间:
2020-05-23 13:19:06
阅读次数:
59
为什么用Redis 是什么 一个小程序 缓存 & 数据库 单线程worker 新版本:IO threads epoll:多路复用 速度 硬盘:寻址时间ms,带宽(吞吐)百兆~G/s(固态硬盘pci-e nvme) 内存:寻址时间ns,比硬盘快10w倍 文件 全量扫描(高IO),过大(T级)时,查询会 ...
分类:
数据库 时间:
2020-05-22 19:09:54
阅读次数:
97
高性能key-value分布缓存,多线程,主线程/工作线程 slab机制 slab->trunk->item 默认slab1M trunk size 递增 freelist LRU 通过hashtable定位key 单向链表解决冲突 高性能特性,单节点百万级QPS 系统架构 网络处理 libeven ...
分类:
系统相关 时间:
2020-05-21 11:54:43
阅读次数:
83
在通信领域当中,经常会在芯片运行过程当中进行时钟切换,特别是当芯片内部中有两个时钟源时,往往通过内部逻辑控制多路复用器来实现时钟源的切换。 时钟切换的分类: 第一种:第一种时两个时钟源的频率呈倍数关系; 第二种:两个时钟源完全没有关系,异步时钟。 解决方法: 当两个时钟可能完全无关,也可能成倍数关系 ...
分类:
其他好文 时间:
2020-05-21 00:29:33
阅读次数:
54
图片说明: 客户端发出的请求经过nginx代理→wsgi服务器,服务器开启的监听线程会捕获到事件,根据事件条件→对应的就绪Socket描述符,服务端会接入流数据→应用内部 开始对请求进行 解析,封装生成Request(此时在生成WSGIHandler实例时,中间件已经被加载)→→handle.run ...
分类:
其他好文 时间:
2020-05-20 00:25:00
阅读次数:
82
一、概述 决定何时、如何选择一个新进程运行的这组规则叫做:调度策略(scheduling policy)。 Linux的调度是基于分时技术(time sharing):多个进程以“时间多路复用”方式运行,因为CPU的时间呗分成“片”(slice),给每个可运行进程分配一片。如果当前运行进程的时间片或 ...
分类:
系统相关 时间:
2020-05-19 20:51:09
阅读次数:
74
3.1 IP 尽力而为交付服务 不可靠服务 每个主机有一个IP地址 将主机间交付扩展到进程间交付 运输层的多路复用和多路分解 TCP提供可靠的数据传输 拥塞控制(拥塞:需求大于供给 如果网络中许多资源同时供应不足,网络的性能就要明显变坏 整个网络的吞吐量随负荷增大而降低 TCP使用多种拥塞控制策略来 ...
分类:
其他好文 时间:
2020-05-15 21:47:42
阅读次数:
81
为何采用 TCP? Apache Kafka 的所有通信都是基于 TCP 的 而不是基于 HTTP 或其他协议 无论是生产者、消费者,还是 Broker 之间的通信都是如此 人们能够利用 TCP 本身提供的一些高级功能,比如多路复用请求以及同时轮询多个连接的能力 所谓的多路复用请求,即 multip ...
分类:
编程语言 时间:
2020-05-14 15:58:34
阅读次数:
102