完整课程入口:996 全套课程体系 | Lua 学习路径 | 幂尔框架 mirs.cn
玩家数据全量常驻内存是服务端内存增长的主因:三个月未登录的账号与今日活跃玩家占用同等的内存与保存资源。冷热分离按访问频率分层——热数据常驻内存、温数据按需加载、冷数据归档落盘。适用于:账号总量 10 万以上的长线服、多区合服后的存量数据治理。
热层:7 天内登录的玩家,全量数据常驻内存
温层:30 天内登录,仅保留核心索引(账号、等级、last_login),详情按需从库加载
冷层:超 30 天未登录,全部归档到归档表/归档文件,内存只留一行索引
分层的实现是一个状态字段加一套生命周期钩子:登录时若处于温/冷层,先从归档恢复到热层;掉线且进入冷层阈值时,全量落档后释放内存。
冷数据恢复的耗时决定玩家登录体验。三项措施:归档格式用紧凑二进制(string.pack 方案)而非 JSON,单账号恢复控制在 15ms 内;恢复动作在登录流程里异步执行,先返回登录成功、数据就绪后再进场景;恢复失败有兜底路径——重建空数据并标记账号待审,绝不让玩家卡死在登录。
冷数据是纠纷追溯的证据库,归档必须满足:写入时附带完整性校验(HMAC,参考防篡改篇);归档文件只增不改,修正走"新归档 + 变更记录";保留周期与承诺一致(通常 180 天起),删除动作双人复核。某 996 服实施冷热分离后,常驻内存从 2.1G 降到 740M,合服时的数据迁移量同步缩小三分之二——内存收益之外,运维的每个环节都变轻了。