KV 库 —— 基于 Key-Value 的玩家动态属性存储

底层数据表:tbl_player_kv

命名由来

本库取名为 KV,是 Key-Value(键值对)的缩写。这个命名直观地表达了库的核心数据模型:每个玩家的属性集合本质上是一个巨大的键值映射

  • Key:属性名称(字符串),如 "aa""level""gold"
  • Value:属性值(字符串、整数)。

KV 强调通用性无结构,不预设任何固定字段,允许每个玩家拥有完全不同的属性键,完美适配“动态属性”的需求。

设计目标

1. 简单极致

对外仅提供三个核心操作:SetGetDel。开发者无需学习复杂概念。

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