KV库
KV 库 —— 基于 Key-Value 的玩家动态属性存储
底层数据表:
tbl_player_kv
命名由来
本库取名为 KV,是 Key-Value(键值对)的缩写。这个命名直观地表达了库的核心数据模型:每个玩家的属性集合本质上是一个巨大的键值映射。
- Key:属性名称(字符串),如
"aa"、"level"、"gold"。 - Value:属性值(字符串、整数)。
KV 强调通用性和无结构,不预设任何固定字段,允许每个玩家拥有完全不同的属性键,完美适配“动态属性”的需求。
设计目标
1. 简单极致
对外仅提供三个核心操作:Set、Get、Del。开发者无需学习复杂概念。
2. 高性能
- C 层内存缓存 实现 O(1) 读写。
- 底层存储格式为 JSON,利用 cJSON 快速修改单个键,无需整体解析。
- 通过同步间隔控制数据写入频率,避免频繁 I/O。
3. 持久化与索引分离
- 主存储:MySQL 表
tbl_player_kv,保存每个玩家的完整 JSON 快照。 - 缓存层:在线玩家的对象,所有修改直接落在内存。
4. 语言互通
- C 核心实现,通过 LuaJIT FFI 暴露给 Lua 脚本,兼顾底层效率与上层开发便捷性。
总结
通过 KV 这个简洁的名字,我们希望传达出库的本质:一个纯粹、高效的键值存储接口,藏起所有复杂性,只保留数据存、取、删的基本原子。
作者:105493660 创建时间:2026-05-02 16:37
最后编辑:105493660 更新时间:2026-05-02 18:34
最后编辑:105493660 更新时间:2026-05-02 18:34