"""示例 5:KV 数据存储全流程(单值 / 批量 / 前缀)。 用法: python 05_data_storage_kv.py 注意: - key 不能含 "/"(路由 data/{key} 单段匹配,会 404);前缀分隔用 ":", 不要用 "_"/"%"(前缀匹配是 SQL LIKE 通配符)。本示例统一用 "demo:nb:..." 作为 key。 """ from __future__ import annotations import json from _common import make_client def main() -> None: svc = make_client() prefix = "demo:nb:" # ':' 作分隔:前缀查询/删除是 SQL LIKE,'_' 会被当通配符 print(f"[1/6] 单键写入 {prefix}user1") svc.save_custom_data(f"{prefix}user1", value=json.dumps({"name": "alice", "age": 20})) print(f"[2/6] 单键读取") user1 = svc.get_custom_data(f"{prefix}user1") print(" ->", user1.get("data")) print(f"[3/6] 批量写入(user2 / user3)") svc.save_multiple_custom_data([ {"key": f"{prefix}user2", "value": json.dumps({"name": "bob", "age": 30})}, {"key": f"{prefix}user3", "value": json.dumps({"name": "carol", "age": 25})}, ]) print(f"[4/6] 列出 prefix 下所有 key") keys = svc.get_custom_data_keys(prefix=prefix) print(" ->", keys.get("keys")) # 响应字段是 keys(不是 data) print(f"[5/6] 删除单个 {prefix}user2") svc.delete_custom_data(f"{prefix}user2") print(f"[6/6] 按前缀批量删除") svc.delete_custom_data(prefix, is_prefix=True) final_keys = svc.get_custom_data_keys(prefix=prefix).get("keys") or [] print(" 清理后剩余 keys:", final_keys) if __name__ == "__main__": main()