乐于分享
好东西不私藏

0-Valkey 源码架构分析

0-Valkey 源码架构分析
来源:Github Valkey版本:9.0.3

1项目概览

1.1 核心功能

Valkey 是一个高性能数据结构服务器(data structure server),对外以 RESP 协议提供键/值工作负载。它并非简单的 K-V 缓存,而是"数据结构即服务"系统——客户端存储的是具有语义的结构(字符串、列表、哈希、集合、有序集合、流、位图、HyperLogLog、地理信息等),服务器侧完成结构化操作。

引证
:"Valkey is a high-performance data structure server that primarily serves key/value workloads." —— README.md:9-10

1.2 解决的主要问题

问题
Valkey 的解决方式
证据
低延迟高吞吐
内存存储 + 单线程事件循环避免锁
ae.c
单核十万 QPS
数据结构服务化
ZSET 范围/Stream 消费组下沉存储侧
t_zset.c / t_stream.c
内存效率
listpack/intset 紧凑编码 + 自动转换
§7.1
高可用与扩展
16384 槽分片 + 自动故障转移
cluster_legacy.c
数据安全
AOF 秒级/每写持久化 + fork+COW 不阻塞
aof.c / rdb.c

1.3 典型使用场景

分布式缓存

TTL、LRU/LFU 淘汰、客户端缓存追踪

会话/计数/限流

原子 INCR、滑动窗口、分布式锁

排行榜/统计

ZSET 排行榜、HyperLogLog UV 去重

消息队列

List 阻塞队列、Stream 消费组

地理位置

GEO 命令集(ZSET+GeoHash)

发布订阅

Pub/Sub + Sharded Pub/Sub

1.4 主要技术栈

层次
选型
来源
语言
C(C11 -std=gnu11
Makefile:58-62
构建
Makefile(主)+ CMake(实验性)
根目录
内存分配器
jemalloc
(Linux 默认,可选 libc/tcmalloc)
Makefile:74-77
多路复用
epoll / kqueue / evport / select
ae_epoll.c
客户端库
libvalkey
(替代 hiredis,支持 RESP3/集群/TLS/RDMA/MPTCP)
deps/libvalkey
脚本引擎
Lua 5.1 加固版 + Functions 引擎抽象层
deps/lua
网络
TCP / Unix socket / TLS / RDMA(9.0) / MPTCP(9.0)
socket/tls/rdma/unix.c
协议
RESP2 / RESP3
networking.c
Valkey 9.0 关键演进
(综合 00-RELEASENOTES):新增 hashtable.c(Swiss-table+SIMD)、Hash 字段级 TTL、原子槽位迁移 ASM、集群多 DB、双通道复制、IO 线程重写、全局重命名(redisObject→serverObjectredisDb→serverDbserver.h:95,875)。

2整体架构

2.1 架构设计总览

Valkey 采用单线程反应器(Reactor)+ 多路复用 + 受控多线程架构。核心思想:命令执行串行化(避免锁)慢速 I/O 与阻塞操作卸载到辅助线程/子进程

2.2 分层结构

职责
代表文件
L1 协议层
RESP2/3 解析与编码、命令分发
networking.cresp_parser.c
L2 事件层
多路复用、定时器、睡眠钩子
ae.cae_epoll.cio_threads.c
L3 命令层
命令查找、ACL/集群检查、执行、传播
server.ccommands.c
L4 数据层
键空间、对象、编码、过期
db.cobject.ckvstore.chashtable.c
L5 类型层
各数据类型命令实现
t_*.clistpack/quicklist/intset/rax
L6 持久化层
RDB/AOF 序列化与加载
rdb.caof.crio.c
L7 分布式层
复制、集群、哨兵
replication.ccluster*.csentinel.c

2.3 模块依赖关系

核心规律
server.c是唯一全局枢纽,子系统通过 server全局结构体(server.h:1668)交互而非直接互调。降低耦合,但使 server成为"上帝对象"。
networking.c ──┐      │        │  ae.c(事件循环)│      │        │  ┌───▼────────▼───┐  │   server.c     │ ← 全局枢纽 (main/call/processCommand/serverCron)  └──┬─────┬────┬──┘     ▼     ▼    ▼   db.c config.c replication.c → rdb.c/aof.c     │                         │     ▼                         ▼ kvstore→hashtable           rio.c     │     ▼ t_*.c → module.c → eval.c/functions.c

2.4 数据流视角

3模块结构

3.1 主要模块清单

服务器二进制由约 130 个目标文件链接(src/Makefile:426的 ENGINE_SERVER_OBJ)。

模块组
文件
职责
核心枢纽
server.c server.h
main、全局状态、命令分发、cron、生命周期
网络/事件
ae.c ae_epoll.c networking.c connection.c socket.c tls.c unix.c rdma.c io_threads.c
事件循环、协议、连接抽象、IO 多线程
数据结构引擎
dict.c hashtable.c kvstore.c listpack.c ziplist.c intset.c quicklist.c rax.c
哈希表、紧凑编码、基数树
对象/键空间
object.c db.c expire.c evict.c lazyfree.c defrag.c
serverObject、DB、过期、淘汰、异步释放、碎片整理
类型实现
t_string.c t_list.c t_set.c t_zset.c t_hash.c t_stream.c hyperloglog.c geo.c bitops.c sort.c
各数据类型命令
持久化
rdb.c aof.c rio.c bio.c childinfo.c
RDB/AOF、后台线程、子进程通信
复制
replication.c syncio.c
主从同步、PSYNC、backlog
集群
cluster.c cluster_legacy.c cluster_migrateslots.c cluster_slot_stats.c crc16.c
拓扑、Gossip、故障转移、槽迁移
哨兵
sentinel.c
独立高可用方案
可编程
eval.c functions.c scripting_engine.c script.c lua/*
脚本与函数
扩展
module.c valkeymodule.h
模块 API
安全/事务
acl.c multi.c tracking.c pubsub.c blocked.c
ACL、事务、客户端缓存、发布订阅、阻塞
配置/运维
config.c commands.c commandlog.c latency.c debug.c notify.c timeout.c
配置、命令表、慢日志、延迟监控
工具链
valkey-cli.c valkey-benchmark.c valkey-check-aof.c valkey-check-rdb.c
CLI、压测、修复工具
追踪
trace/*
lttng 追踪点(9.0 新增)

3.2 核心模块职责

server.c — 全站枢纽

main()                    // server.c:7139  程序入口(weak 符号)initServerConfig()        // server.c:2229  仅设默认值initServer()              // server.c:2835  运行时资源初始化InitServerLast()          // server.c:3138  bioInit + initIOThreadsprocessCommand()          // server.c:4186  命令检查链(ACL/集群/maxmemory)call()                    // server.c:3795  执行 c->cmd->proc(c)serverCron()              // server.c:1483  周期后台任务beforeSleep()/afterSleep()// server.c:1794/1980  循环钩子

数据层 kvstore.c + hashtable.c + dict.c

  • kvstore:按 cluster slot 分片(集群 16384 分片,非集群 1 分片)
  • hashtable.c:Swiss-table 风格,64 字节 cache-line 对齐桶 + SIMD 过滤
  • dict.c:经典拉链哈希表,渐进式 rehash,用于非 DB 字典

3.3 模块调用关系(HSET 示例)

3.4 核心模块识别

以下为"牵一发而动全身"的核心模块,理解它们即理解 Valkey 骨架:

4启动流程

4.1 程序入口

入口为 main(),位于 src/server.c:7139,标记为弱符号以支持测试覆盖:

__attribute__((weak)) intmain(int argc, char **argv) {  // server.c:7139

4.2 初始化流程(6 阶段)

4.3 配置加载流程

配置优先级(server.c:7240-7241):配置文件、stdin、命令行 --option——最后出现的生效

三步合一的 loadServerConfig()config.c:649-712)将三种来源拼成一个 sds,交给 loadServerConfigFromString()

voidloadServerConfig(char *filename, char config_from_stdin, char *options) {    sds config = sdsempty();if (filename) { /* 读文件,支持 glob 通配符 * ? [ */ }if (config_from_stdin) { /* 追加 stdin */ }if (options) { config = sdscat(config, "\n"); config = sdscat(config, options); }    loadServerConfigFromString(config);  // config.c:710}
注意
:不存在独立的 loadServerConfigFromStdin函数——stdin 处理内联在 loadServerConfigconfig.c:699-703)。

配置项注册——standardConfig 表(config.c:292-300)

structstandardConfig {constchar *name;        /* 用户可见名 */constchar *alias;       /* 别名(slave-*→replica-*) */unsignedint flags;      /* IMMUTABLE/MODIFIABLE/MULTI_ARG/... */    typeInterface interface; /* init/set/get/rewrite/apply 回调 */    typeData data;           /* yesno/string/sds/enumd/numeric */    configType type;         /* BOOL/STRING/SDS/ENUM/NUMERIC */void *privdata;          /* 模块配置 */};

静态表 static_configs[]config.c:3190)+ 运行时字典 static dict *configsconfig.c:302)。文件解析与 CONFIG SET/GET/REWRITE 复用同一套回调,设计高度统一。

4.4 核心组件初始化(initServer, server.c:2835-3051)

signal(SIGHUP, SIG_IGN); signal(SIGPIPE, SIG_IGN);   // 2836setupSignalHandlers();   // 6713: SIGTERM/SIGINT → sigShutdownHandlerserver.el = aeCreateEventLoop(server.maxclients + CONFIG_FDSET_INCR);  // 2904server.dbnum = server.cluster_enabled ? server.config_databases_cluster                                     : server.config_databases;          // 2910server.db = zcalloc(sizeof(serverDb*) * server.dbnum);createDatabaseIfNeeded(0);  evictionPoolAlloc();                      // 2914aeCreateTimeEvent(server.el, 1, serverCron, NULLNULL);              // 2986aeCreateTimeEvent(server.el, 1, clientsTimeProc, NULLNULL);         // 2992aeSetBeforeSleepProc(server.el, beforeSleep);  // 3005aeSetAfterSleepProc(server.el, afterSleep);    // 3006scriptingEngineManagerInit → luaEngineInitEngine → functionsInit → evalInit;  // 3019-3039

InitServerLast()server.c:3138)延迟到最后(模块加载后),规避 ld.so与 dlopen的 TLS 竞争 bug:bioInit() + initIOThreads()

initListeners()server.c:3053)端口绑定被移出 initServer,单独在配置加载后调用。

4.5 加载数据(loadDataFromDisk, server.c:6922)

if (server.aof_state == AOF_ON) {    loadAppendOnlyFiles(server.aof_manifest);   // AOF 优先else {    rdbLoad(server.rdb_filename, &rsi, rdb_flags);  // 否则 RDB}

5核心执行流程

5.1 一条命令的完整生命周期(SET foo bar)

5.2 数据对象的编码流转

serverObject结构(server.h:796-806):

structserverObject {unsigned type : 4;            // 逻辑类型 (OBJ_STRING..OBJ_STREAM)unsigned encoding : 4;        // 底层编码unsigned lru : LRU_BITS;      // 24位, LRU时间或LFU计数复用unsigned hasexpire : 1;       // Valkey新增: 内嵌过期标记unsigned hasembkey : 1;       // Valkey新增: 内嵌keyunsigned refcount : OBJ_REFCOUNT_BITS;  // 30位void *ptr;};
type
可能 encoding
转换触发
阈值(默认)
OBJ_STRING
INT/EMBSTR/RAW
≤20位整数→INT;≤44字节→EMBSTR
OBJ_ENCODING_EMBSTR_SIZE_LIMIT=44object.c:221
OBJ_LIST
QUICKLIST(listpack节点)
listpack超限→quicklist
list-max-listpack-size -2
(8KB)
OBJ_HASH
LISTPACK/HASHTABLE
元素/值长超限→hashtable;字段设TTL→强制
hash-max-listpack-entries 512 / value 64
OBJ_SET
INTSET/LISTPACK/HASHTABLE
全整数超限→hashtable;非整数→listpack→hashtable
set-max-intset-entries 512
OBJ_ZSET
LISTPACK/SKIPLIST
元素/值长超限→skiplist
zset-max-listpack-entries 128
OBJ_STREAM
STREAM(rax+listpack)
节点超限→新建rax节点
stream-node-max-bytes 4096 / entries 100
设计精髓
:小数据用紧凑编码(listpack/intset)省内存,大数据用高效结构(hashtable/skiplist)保性能,转换在写入路径自动触发,对客户端透明。

5.3 命令执行前的检查链(processCommand, server.c:4186)

5.4 call() 的执行与后处理

constlonglong call_timer = ustime();enterExecutionUnit(1, call_timer);          // 3832 进入执行单元(嵌套统计)c->flag.executing_command = 1;monotime monotonic_start = 0;if (monotonicGetType() == MONOTONIC_CLOCK_HW) monotonic_start = getMonotonicUs();c->cmd->proc(c);                            // 3846 ← 真正执行命令exitExecutionUnit();duration = getMonotonicUs() - monotonic_start;  // 仅硬件时钟时用,避免3次系统调用latencyAddSampleIfNeeded(latency_event, duration);  // 3893commandlogPushCurrentCommand(c, real_cmd);          // 3904 慢日志// 命令统计、错误统计、传播...
性能细节
monotonic_start仅在硬件时钟(TSC)可用时获取,否则复用 call_timer,避免每次命令 3 次 gettimeofday系统调用(server.c:3844,3857)。

5.5 关键对象的流转

client (客户端对象, networking.c)  │  querybuf (输入缓冲, sds) / cmd_queue (解析后命令队列, 9.0批量)  │  argv/argc / buf(16KB)+reply(动态链表) 输出缓冲 / db  ▼serverObject / robj (object.c)  │  type + encoding + lru + refcount + ptr  ▼serverDb (db, server.h:875)  │  keys (kvstore) / expires (kvstore) / keys_with_volatile_items (kvstore)  ▼kvstore (分片层, kvstore.c) → hashtables[16384] 按slot索引  ▼hashtable / dict (存储引擎) → bucket(64B cache-line) / dictEntry  ▼listpack / intset / skiplist / quicklist / rax (底层编码)

6并发模型

6.1 线程模型总览

Valkey 是"单线程命令执行 + 受控多线程辅助"模型,这是其低延迟的根基。

为什么命令执行串行化?
单线程无锁访问数据集,彻底消除锁竞争、死锁、缓存行与伪共享。这是 Valkey 用"多核靠多实例分片"换"单核极致低延迟"的哲学。

6.2 是否使用线程池

(1) IO 线程池(io_threads.c,9.0 全新重写)

Valkey 9.0 用无锁环形缓冲队列取代旧版共享 list + 自旋。每个 IO 线程拥有独立 SPSC(单生产者单消费者)队列:

typedefstructIOJobQueue {    iojob *ring_buffer;size_t size;_Atomicsize_t head __attribute__((aligned(CACHE_LINE_SIZE))); /* 主线程写 */_Atomicsize_t tail __attribute__((aligned(CACHE_LINE_SIZE))); /* IO线程写 */} IOJobQueue;
  • 生产者(主线程)IOJobQueue_push
    memory_order_release发布 head(io_threads.c:72
  • 消费者(IO 线程)IOJobQueue_availableJobs
    memory_order_acquire读 head(io_threads.c:82
  • 缓存行对齐
    head/tail分别 aligned(CACHE_LINE_SIZE),避免伪共享
  • 忙等+挂起混合
    :先自旋 1,000,000 次(io_threads.c:232),无任务则 pthread_mutex_lock挂起(:239

IO 线程可承担:读 socket、写 socket、解析 RESP,甚至 aeApiPoll本身(IOThreadPollio_threads.c:204)。动态伸缩adjustIOThreadsByEventLoad():170)按负载增减活跃线程;9.0 支持运行时 CONFIG SET io-threads NupdateIOThreads:309)。

(2) BIO 后台线程池(bio.c)

worker
任务类型
说明
0
BIO_CLOSE_FILE
延迟 close(2)(大文件 inode 释放慢)
1
BIO_AOF_FSYNC
BIO_CLOSE_AOF
AOF fsync(同线程保证顺序)
2
BIO_LAZY_FREE
大对象异步释放
3
BIO_RDB_SAVE
副本侧后台落盘 RDB

fsync 状态通过原子变量 aof_bio_fsync_status回传,无需加锁。

6.3 锁优化与无锁结构

Valkey 几乎不在数据路径加锁(命令执行单线程)。但仍有多处精心设计的并发原语:

场景
机制
位置
IO 线程任务队列
无锁 SPSC 环形缓冲
(C11 _Atomic+ memory_order)
io_threads.c:20-25
IO 线程与主线程同步
原子标志位+自旋
(io_read/write/poll_state)
io_threads.c:150-166
bio fsync 状态回传
原子变量bio.c:285
模块线程访问数据集
GIL
(moduleAcquireGIL/ReleaseGIL)
server.c:1991,1971
共享对象
refcount 哨兵值
OBJ_SHARED_REFCOUNT(无锁访问)
object.c:123-127
事件循环 poll 互斥
poll_mutex
ae.h:116
客户端计数
atomic_fetch_add
lazyfree.c:183
关键约束——GIL 边界
beforeSleep()末尾 moduleReleaseGIL()server.c:1971),afterSleep()开头 moduleAcquireGIL()server.c:1991)。两处强警告注释:GIL 释放后/获取前不得添加任何代码。这构成模块后台线程与主线程数据访问的同步边界。注意:存储引擎(hashtable.c/dict.c既非无锁并发结构也非分段锁——全文无 mutex/atomic/lock 字段,线程安全完全依赖单线程事件循环保证。

7性能优化

7.1 缓存设计

(1) 多级紧凑编码("结构即缓存")

listpack

变长整数+字符串连续字节数组,替代旧 ziplist,无 prevlen 回写问题

intset

纯整数集合,按值类型(16/32/64位)紧凑排列,二分查找

自动转换

小 Hash 用 listpack 省元数据,大时转 hashtable 保性能

(2) 共享对象池

预创建 0~9999 共 10000 个共享整数对象(OBJ_SHARED_INTEGERSserver.h:135server.c:2194),refcount 设为 OBJ_SHARED_REFCOUNT(永不释放),无锁访问。

(3) 客户端查询缓冲复用 + 回复缓冲(固定+动态)

_addReplyToBufferOrListnetworking.c:683):优先写入 16KB 固定缓冲 c->buf,溢出才用动态链表 c->reply,减少小回复的 malloc。

7.2 批处理

批处理
机制
位置
命令队列与批量解析(9.0)
parseInputBuffer 一次解析多条入 cmd_queue + prefetchCommandsBatch 流水线预取
networking.c:3835io_threads.c:331
批量写回
handleClientsWithPendingWrites 一次处理所有待写,IO 线程并行
server.c:1917
AOF 批量
命令先拼入 aof_buf,flushAppendOnlyFile 批量写盘
aof.c:1321

7.3 异步处理

操作
异步方式
位置
大对象释放
BIO_LAZY_FREE(阈值 64,LAZYFREE_THRESHOLD
lazyfree.c:171,180
AOF fsync
BIO_AOF_FSYNC 后台线程
bio.c:280
大文件 close
BIO_CLOSE_FILE
bio.c:270
RDB 保存
fork 子进程 + COW
rdb.c:1648
AOF 重写
fork 子进程重放
aof.c:2462
副本 RDB 落盘
BIO_RDB_SAVE
bio.c:305
过期删除
惰性(访问时)+ 定期(cron 抽样)
db.c:2107expire.c:198
字典 rehash
渐进式(每操作 1 桶 + cron 微秒预算)
dict.c:114hashtable.c:1270

7.4 IO 优化

优化
说明
位置/证据
多路复用
epoll LT(水平触发)模式(未用 EPOLLET)
ae_epoll.c:83-84
IO 线程卸载
9.0 卸载 read/write/parse/poll,无锁队列+cache-line对齐
io_threads.c
直接写客户端(9.0)
回复直接写 socket,减少缓冲拷贝
#2078
SIMD 加速(9.0 多项)
hashtable(SSE2/NEON)、BITCOUNT、HLL、string2ll(AVX512+IFUNC)
hashtable.c:700-754
内存预取
memory_prefetch.c + Fenwick 树 O(logN) 公平随机
memory_prefetch.c
低开销时钟
LRU_CLOCK 用预计算 server.lruclock 避免系统调用
evict.c:73

8容错与稳定性

8.1 重试机制

场景
机制
位置
AOF 短写
ftruncate 回退到合法偏移,重试写
aof.c:1171
同步 IO
syncio.c 循环读写处理 EINTR/短写
syncio.c
集群连接
clusterCron 周期重连失联节点
cluster_legacy.c:5882
副本重连
断开后自动重新 PSYNC
replication.c:3971
AOF 加载截断
aof-load-truncated 截断到合法偏移继续
aof.c:1598

8.2 降级策略

场景
降级方式
位置
OOM 写命令
CMD_DENYOOM 命令返回 OOM,非 DENYOOM 仍可执行
server.c:4391
maxmemory 满且 noeviction
拒绝写命令,读命令仍可用
evict.c:546
集群少数派分区
状态置 CLUSTER_FAIL,拒绝服务防脑裂
cluster_legacy.c:6360
副本 stale 数据
replica-serve-stale-data 控制是否返回陈旧数据
config.c
集群未全覆盖
cluster-require-full-coverage 控制是否整体不可用
cluster_legacy.c:6296
loading 中
除 CMD_LOADING 命令外拒绝
server.c:4282
脚本超时
仅允许 SHUTDOWN NOSAVE/SCRIPT KILL
server.c:4187

8.3 限流

  • 客户端输出缓冲区限制
    client-output-buffer-limit对普通/副本/pubsub 客户端设硬/软限制,超限强制断开,防慢客户端拖垮服务器。
  • 客户端内存驱逐
    evictClients()server.c:4366)每条命令前检查,超 maxmemory-clients驱逐占用最多者。
  • 集群连接限速
    :9.0 限制每周期新建 cluster link 数(#2009)。
  • 慢日志与延迟监控
    commandlog记录超阈值命令;latency.c按事件类型记录时间序列(LATENCY_TS_LEN=160latency.h:39)。

8.4 异常处理

(1) 断言与 panic 体系

_serverAssertdebug.c:1063)/ _serverPanicdebug.c:1170):触发崩溃报告(含栈、内存、客户端信息)。serverPanic用于"不可恢复状态"(如编码损坏,aof.c:1785)。

(2) 看门狗(Watchdog)

applyWatchdogPerioddebug.c:2357)用 setitimer(ITIMER_REAL)设定 SIGALRM,主线程阻塞超时则中断打印栈。最小周期 2*(1000/hz)ms(:2365)。

(3) 优雅停机

sigShutdownHandlerserver.c:6713)捕获 SIGTERM/SIGINT,finishShutdown依次:等副本追平→杀子进程→RDB 保存→关闭 AOF。9.0 新增 SHUTDOWN SAFE拒绝不安全停机(#2195)。

(4) 持久化容错

  • RDB CRC64 校验
    :加载时校验,损坏则拒绝(rdb.c:1486
  • AOF manifest 多文件
    :BASE+INCR 链,单文件损坏不影响其他;valkey-check-aof --fix修复
  • RDB 版本兼容
    rdbIsVersionAccepted放宽对外来格式校验(9.0 #2543

(5) 集群故障自愈

(6) 过期双保险

惰性删除(访问时检查,db.c:2107)+ 定期删除(cron 抽样,expire.c:198),FAST/SLOW 双周期交替,KEYS/FIELDS 任务防饿死(expire.c:486)。

(7) 内存碎片整理

defrag.c+ jemalloc je_get_defrag_hint()主动整理碎片,避免内存虚高。

9设计优点

9.1 架构优点

✅ 极致低延迟

单线程无锁 + 事件循环 + epoll,单核十万 QPS

✅ 内存高效

listpack/intset 紧凑编码 + 自动转换 + jemalloc

✅ 接口统一

standardConfig 函数指针表,文件解析与 CONFIG SET/GET/REWRITE 复用

✅ 连接抽象

connection.c 多态,TCP/TLS/Unix/RDMA 无缝切换

✅ 渐进演进

dict→hashtable、IO 线程重写,保持向后兼容

✅ 可扩展

模块 API + 脚本引擎抽象层支持多语言

✅ 高可用完备

Cluster+Sentinel 双方案,Raft-like 选举+Gossip 自愈

✅ 可观测性

latency/commandlog/hdr_histogram/lttng/INFO

学习路径

建议按"由外到内、由简到繁、由数据到控制"的顺序阅读:

阶段一:建立全局观

步骤
文件
目标
1
README.mdvalkey.conf
功能与配置分区(15 段映射子系统)
2
src/Makefile:426
看 ENGINE_SERVER_OBJ 清单,建立模块地图
3
src/version.h00-RELEASENOTES
版本演进与 9.0 新特性

阶段二:启动与事件循环

步骤
文件:函数
目标
4
server.c:7139 main
通读启动 6 阶段
5
server.c:2835 initServer
组件初始化顺序
6-8
ae.c/ae.hae_epoll.cserver.c:1794/1980
事件循环、epoll(LT)、beforeSleep/afterSleep 与 GIL

阶段三:命令执行主链

步骤
文件:函数
目标
9-11
networking.c:4179 readQueryFromClient:3835 parseInputBuffer:3774 processCommandAndResetClient
读取、解析、分发
12-13
server.c:4186 processCommand:3795 call
检查链与执行统计
14
networking.c:743 addReply:2946 writeToClient
回复缓冲与写回

阶段四:数据结构与存储引擎

步骤
文件:函数
目标
15-17
server.h:796 serverObjectobject.c:55db.c:88 lookupKey
对象、创建、查找
18-19
kvstore.chashtable.cdict.c:317 dictRehash
分片+Swiss-table+渐进 rehash
20-21
listpack/intset/quicklist/raxt_string→t_zset
紧凑编码与类型转换
22
expire.c:198 activeExpireCycleJob
过期机制

阶段五:并发与性能

步骤
文件
目标
23-27
io_threads.cbio.clazyfree.cevict.c:527 performEvictionsdefrag.c
无锁 IO 线程、后台线程、异步释放、淘汰、碎片整理

阶段六:持久化与复制

步骤
文件:函数
目标
28-30
rdb.c:1648 rdbSaveBackgroundaof.c:1321/1053aof.c:2462 rewrite
RDB、AOF 写入与 fsync、AOF 重写
31-33
replication.c:3971 syncWithPrimary:827 PSYNC:424 feedReplicationBuffer
副本状态机、部分重同步、backlog

阶段七:集群与高可用

步骤
文件:函数
目标
34-36
cluster.c:57 keyHashSlotcluster_legacy.c:4588 clusterSendPing:2432 markNodeAsFailingIfNeeded
槽定位、Gossip、PFAIL→FAIL
37-40
cluster_legacy.c:5325 clusterHandleReplicaFailovercluster.c:1047 getNodeByQuerycluster_migrateslots.csentinel.c:4407
选举、重定向、槽迁移、Sentinel

阶段八:扩展与安全

步骤
文件
目标
41-46
config.c:3190multi.cblocked.ceval.c/functions.c/scripting_engine.cmodule.cacl.c
配置系统、事务 CAS、阻塞命令、脚本引擎、模块 API、ACL
基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-23 11:43:35 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/867915.html
  2. 运行时间 : 0.125496s [ 吞吐率:7.97req/s ] 内存消耗:4,729.85kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=4cce59f729f6a3a503d3e613bfa373f7
  1. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_static.php ( 6.05 KB )
  7. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/ralouphie/getallheaders/src/getallheaders.php ( 1.60 KB )
  10. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  11. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  12. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  13. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  14. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  15. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  16. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  17. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  18. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  19. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions_include.php ( 0.16 KB )
  21. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions.php ( 5.54 KB )
  22. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  23. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  24. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  25. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/provider.php ( 0.19 KB )
  26. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  27. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  28. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  29. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/common.php ( 0.03 KB )
  30. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  32. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/alipay.php ( 3.59 KB )
  33. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  34. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/app.php ( 0.95 KB )
  35. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cache.php ( 0.78 KB )
  36. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/console.php ( 0.23 KB )
  37. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cookie.php ( 0.56 KB )
  38. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/database.php ( 2.48 KB )
  39. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/filesystem.php ( 0.61 KB )
  40. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/lang.php ( 0.91 KB )
  41. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/log.php ( 1.35 KB )
  42. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/middleware.php ( 0.19 KB )
  43. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/route.php ( 1.89 KB )
  44. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/session.php ( 0.57 KB )
  45. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/trace.php ( 0.34 KB )
  46. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/view.php ( 0.82 KB )
  47. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/event.php ( 0.25 KB )
  48. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  49. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/service.php ( 0.13 KB )
  50. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/AppService.php ( 0.26 KB )
  51. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  52. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  53. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  54. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  55. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  56. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/services.php ( 0.14 KB )
  57. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  58. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  59. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  60. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  61. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  62. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  63. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  64. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  65. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  66. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  67. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  68. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  69. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  70. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  71. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  72. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  73. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  74. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  75. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  76. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  77. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  78. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  79. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  80. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  81. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  82. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  83. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  84. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  85. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  86. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  87. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/Request.php ( 0.09 KB )
  88. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  89. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/middleware.php ( 0.25 KB )
  90. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  91. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  92. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  93. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  94. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  95. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  96. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  97. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  98. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  99. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  100. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  101. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  102. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  103. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/route/app.php ( 3.94 KB )
  104. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  105. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  106. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Index.php ( 9.87 KB )
  108. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/BaseController.php ( 2.05 KB )
  109. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  110. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  111. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  112. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  113. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  114. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  115. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  116. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  117. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  118. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  119. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  120. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  121. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  122. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  123. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  124. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  125. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  126. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  127. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  128. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  129. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  130. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  131. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  132. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  133. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  134. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  135. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Es.php ( 3.30 KB )
  136. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  137. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  138. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  139. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  140. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  141. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  142. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  143. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  144. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/runtime/temp/c935550e3e8a3a4c27dd94e439343fdf.php ( 31.50 KB )
  145. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000435s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000713s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000285s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000303s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000529s ]
  6. SELECT * FROM `set` [ RunTime:0.000209s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000570s ]
  8. SELECT * FROM `article` WHERE `id` = 867915 LIMIT 1 [ RunTime:0.000476s ]
  9. UPDATE `article` SET `lasttime` = 1784778215 WHERE `id` = 867915 [ RunTime:0.011959s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000334s ]
  11. SELECT * FROM `article` WHERE `id` < 867915 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000487s ]
  12. SELECT * FROM `article` WHERE `id` > 867915 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000569s ]
  13. SELECT * FROM `article` WHERE `id` < 867915 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001286s ]
  14. SELECT * FROM `article` WHERE `id` < 867915 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.009972s ]
  15. SELECT * FROM `article` WHERE `id` < 867915 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.016321s ]
0.127224s