缘起 19年国庆时无意在豆瓣上看到一个人写因为母亲去世想排解一些内心的伤痛而去泰国的大象自然公园度过一周,无意勾起了我对奶奶的思念。这个陪伴我
MySQL事务隔离
四种隔离级别 读未提交(read uncommitted): 事务还未提交时能被其他事务看到 读提交(read committed): 事务提交后才能被
Python标准库io和select
三种I/O类型 Binary: expects and produces bytes objects, 不会编解码,不会换行 Text: expects and produces str objects, 自动编解码和换行 Raw(unbuffered): uilding-block for binary and text streams 底层类 抽象基类IOBase: 无read
Asyncio主要类和方法一览
events Handle 基本属性: loop, context, call_back, args run: 执行call_back TimeHandle: 带有when到期时间的handle,也用于来比较大小 AbstractServer: 抽象server, 定义start_se
Python标准库heapq
底层设计: 完全二叉树(除了最后一层,其他层都是满的,最后一层的节点都靠左排列) 每个节点的值都小于等于左右子节点的值 使用list存储 入堆hea
Python标准库之并发相关库
threading Lock: 可被其他线程释放 .RLock: 与Lock的区别在于可被锁拥有者多次获取,只能被被锁拥有者释放,释放次数等于获取次数才算完全释放 Condition: condition实
Python标准库functools
functools主要有3个函数:partial, wraps, lru_cache partial: 利用一个类装饰器把现函数和参数保存起来, 后续调用的时候再补充和更新参数 1 2 3 4 5 6 7
Redis协议初探及redis-py源码节选
通讯协议 基于TCP协议 数据以\r\n分隔,数据类型五种,按第一个字节来区分 simple string: ”+“, 状态回复 1 +OK\r\n error: “-", 错误回复 1
Mongo协议初探及pymongo源码节选
通讯协议 组成 head: 消息头 payload length(int32): 消息长度 request_id(int32): 请求ID response_to(int32): 服务端响应对应请求的reques_id(请求类型为OP_QUE
MySQL协议初探及pymysql源码节选
总体交互过程 登录流程 TCP连接建立 1 2 3 4 5 # Connection.connection sock = socket.create_connection((host, port),connection_timeout) sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1) sock.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1) _rfile = _makefile(sock, 'rb') Server向Client发送Handshake packet:包