fix(memdb): expire semantics + Boost 1.83 portability + backlog & test harness

- expire 改为 update+refresh_ttl:键不存在返回 false,与 del/update 约定一致
- _require_string 适配 Boost 1.83(boost::json::string 已非 std::string)
- 新增 --backlog(默认 128,libmsg 默认 10 短连接突刺易丢连接)
- Makefile 补 HOST/PORT 默认值,test-memdb 用 PID 文件替代失效的 kill %1
- 补测试:复制构造/源销毁后副本有效/refresh 延长 TTL/expire 不存在键
This commit is contained in:
qing committed 2026-08-17 14:29:41 +00:00
1 parent 207137c0dd
commit a833cd0d5f
6 files changed
+79 -23

No files matched your search

+6
View File
@@ -197,6 +197,12 @@ def test_expire(c, cnt):
ok, data = c.call("get", key="test:exp")
cnt.check(ok and data == "new", "value after expire", f"got {data}")
ok, data = c.call("expire", key="test:exp:nonexistent", value="x")
cnt.check(ok and data is False, "expire nonexistent key returns false", f"got {data}")
ok, data = c.call("get", key="test:exp:nonexistent")
cnt.check(ok and data is None, "expire nonexistent does not insert", f"got {data}")
def test_missing_params(c, cnt):
ok, data = c.call("set", key="only_key")