redis如此之快,整体来说原因如下 绝大部分请求是纯粹的内存操作(非常快速) 采用单线程,避免了不必要的上下文切换和竞争条件 非阻塞IO 内部实现采用epoll,采用了epoll+自己实现的简单的事件框架。epoll中的读、写、关闭、连接都转化成了事件,然后利用epoll的多路复用特性,绝不在io ...
分类:
其他好文 时间:
2020-01-16 22:05:04
阅读次数:
175
常见面试题 1.为什么建立连接协议是三次握手,而关闭连接却是四次握手呢? 这是因为服务端的LISTEN状态下的SOCKET当收到SYN报文的建连请求后,它可以把ACK和SYN(ACK起应答作用,而SYN起同步作用)放在 一个报文里来发送。 但关闭连接时,当收到对方的FIN报文通知时,它仅仅表示对方没 ...
分类:
其他好文 时间:
2020-01-14 11:32:46
阅读次数:
91
Python 使用 from pymongo import MongoClient 连接mongodb,由于没有关闭连接,导致 netstat -alnt|wc -l达到几万个 socket.error: [Errno 99] Cannot assign requested address 网上你去 ...
分类:
系统相关 时间:
2020-01-08 12:53:15
阅读次数:
93
看到了一道面试题:“为什么TCP建立连接协议是三次握手,而关闭连接却是四次握手呢?为什么不能用两次握手进行连接?”,想想最近也到金三银四了,所以就查阅了相关资料,整理出来了这篇文章,希望对你们有所帮助。 TCP 连接 我们先来补一下基础什么是 TCP 协议? 传输控制协议( Transmission ...
分类:
其他好文 时间:
2020-01-08 10:36:20
阅读次数:
125
package threadpool; /* 创建线程的方式四:使用线程池 1.提供指定线程数量的线程池 2.执行指定的线程的操作,需要实现Runnable接口或Callable接口实现类的对象 3.关闭连接池 好处: 1.提高响应速度,减少了创建线程的时间 2.降低资源消耗(重复利用线程池中线程, ...
分类:
编程语言 时间:
2020-01-05 18:42:06
阅读次数:
84
下图是request_time。 下图是upstream_response_time. 精准的描述就是:request_time是从接收到客户端的第一个字节开始,到把所有的响应数据都发送完为止。upstream_response_time是从与后端建立TCP连接开始到接收完响应数据并关闭连接为止。所 ...
分类:
其他好文 时间:
2019-12-12 18:12:13
阅读次数:
400
现在老板让你写一个监控程序,24小时全年无休的监控你们公司网站服务器的系统状况,当cpu\memory\disk等指标的使用量超过阀值时即发邮件报警,你掏空了所有的知识量,写出了以下代码 while True: if cpu利用率 > 90%: #发送邮件提醒 连接邮箱服务器 发送邮件 关闭连接 i ...
分类:
编程语言 时间:
2019-11-30 19:19:19
阅读次数:
115
TCP 是为了解决可靠传输出现的。为了实现可靠性,TCP 做了流量控制、拥塞控制,并且在建立、关闭连接前做些机制:三次握手、四次挥手。 三次握手是为了让客户端、服务器在建立连接前能保证相互可以发送、接收报文; 四次挥手也一样,客户端、服务器保证相互都得知要关闭时再关闭连接。 如果建立、关闭连接前没有 ...
分类:
其他好文 时间:
2019-11-30 09:53:18
阅读次数:
70
Python连接MySql 步骤 开始 创建connection 获取cursor 操作过程 SQL语句 执行查询 执行命令 获取数据 处理数据 关闭游标:cursor.close() 关闭连接:connection.close() 结束 注意 在pymysql中执行的SQL语句不需要加 ; exe ...
分类:
数据库 时间:
2019-11-28 23:20:48
阅读次数:
174
建立连接——“握手”; 关闭连接——“挥手”; 三次握手详解: 第一次:消息发送中,A端随机选取一个序列号作为自己的初始序号发送给B; 第二次:B端使用ack对A发送来的数据包进行确认,因为已经收到了序列号为x的数据包,准备接收序列号为x+1的包,所以ack=x+1,同时B告诉A自己的初始序列号,就 ...
分类:
其他好文 时间:
2019-11-22 01:14:00
阅读次数:
89