摘要:
协议格式 The way RESP is used in Redis as a request response protocol is the following: Clients send commands to a Redis server as a RESP Array of Bulk St 阅读全文
摘要:
命令具体实现在 。 Memory 是redis通过在每次执行 和`free src/zmalloc.c used_memory`变量实现的 在linux中是通过读 这个文件的第24个字段 得到number of pages the process in real memory然后再乘以 实现的。 表 阅读全文
摘要:
实现参考: 《UNIX环境高级编程》16.3.3 地址查询 《UNIX系统编程手册 下》59.10.1 man getaddrinfo : 阅读全文
摘要:
基本TCP客户端与服务器 Server Read 建连后客户端调用三次send,服务端在recv之前sleep 0秒 : : 建连后客户端调用三次send,服务端在recv之前sleep 5秒 : : 先执行服务端,再执行客户端,客服端执行完三次send后未等服务端read就已返回 Listen B 阅读全文
摘要:
在标准输入上测试select 实现参考了《UNIX环境高级编程》14.4.1和《UNIX系统编程手册》63.2.1。 运行后给进程发 信号。 select支持的最大数量 在本机的 上`$ uname a Darwin localhost 19.0.0 Darwin Kernel Version 19 阅读全文
摘要:
打开、创建、关闭文件 : 由open函数返回的文件描述符一定是最小的未用描述符取值。[^min_fd] 读写 : 偏移量与文件共享 在Linux系统中,若两个进程A与B同时打开某个文件F,在 [^proc]中可以看到各自的文件偏移量。 : dup函数返回的新文件描述符与参数 共享同一个文件表项[^d 阅读全文
摘要:
HDU 1880 #include <bits/stdc++.h> #define DBG(x) cerr << #x << " = " << x << endl using namespace std; typedef long long LL; const unsigned int KEY = 阅读全文
摘要:
跳跃表实现简单,空间复杂度和时间复杂度也较好,Redis中使用跳表而不是红黑树。 实现参考了: "跳跃列表 维基百科,自由的百科全书" 《Redis设计与实现》第五章 跳跃表 Redis源码3.0分支src/t_zset.c等文件 插入时的核心逻辑: 1. 找到插入的位置 2. 随机得到新插入节点的 阅读全文