扩展库 / memcached

memcached

长度感知的文本协议与简洁的单命令客户端。

连接由调用方持有。支持 TCP 分包、任意字节值、总超时和失同步连接中止;不含连接池、自动重连、SASL 或二进制协议。

API

函数用途
set / add(stream, key, data, exptime=0, timeoutMs=5000)写入 string 或 bytes;add 仅在键不存在时写入
get(stream, key, timeoutMs=5000, maxReplyBytes=67108864)返回 string、bytes 或 null,可收紧回复限额
getMany(stream, keys, timeoutMs=5000, maxReplyBytes=67108864)返回命中项数组
del / touch删除或更新过期时间,返回 bool
stats / version / flushAll查询状态、版本;flushAll 清空全部键
buildGet / buildSet / buildAdd / buildDelete / buildTouch构造文本协议命令
buildStats / buildFlushAll / buildVersion构造管理命令
frameSize(Buffer) / parseResponse(Buffer)增量识别并解析完整回复

范例

import memcached
Buffer response = Buffer("VALUE key 0 3\r\na\0b\r\nEND\r\n")
var parsed = memcached.parseResponse(response)
assert parsed["items"][0]["data"] == "a\0b"

离线成对范例:examples/basic.xl 和 examples/basic_c.c;真实服务成对范例:examples/live.xl 和 examples/live_c.c。C 侧包含 include/memcached_native.h,拥有型命令字符串使用 xrtFree,返回的值使用 xrtValueRelease。

验收范围

2026-10-27:Windows JIT/AOT 与 Linux GCC ASan/UBSan、JIT/AOT 包级门禁通过,覆盖 C 协议边界和故障分配、本地 TCP 分包/二进制值/错误后复用/半包、超时与限额中止、双语范例同输出。自管理临时 Memcached 服务在两平台通过多键读取、add/touch、stats/version、flushAll 的 C/XLang JIT 与独立 EXE AOT;可选短压另通过四连接各 1000 轮。数小时耐久、生产流量与集群尚未验收,不将短时门禁解释为完整生产级客户端签收。