tencent cloud

游戏数据库 TcaplusDB

产品动态
产品简介
产品概述
产品优势
应用场景
产品架构
地域介绍
购买指南
产品定价
欠费说明
快速入门
了解基本概念
创建集群
创建表格组
创建表格
获取连接信息
访问 TcaplusDB
操作指南
管理集群与表格组
管理表格
监控与告警
访问管理
标签
任务列表
使用 TcaplusDB client
使用 client 工具访问数据
client 工具命令参考
使用 TcaplusDB SDK
变更历史
SDK 下载
SDK for C++ 接口说明
TcaplusDB 错误码
SDK 安装
PB 表 C++SDK 操作方法
TDR 表 C++SDK 操作方法
使用 TcaplusDB RESTful API
RESTful API 接口说明
Go RESTful API 接口说明
Java RESTful API 接口说明
PHP RESTful API 接口说明
Python RESTful API 接口说明
RESTful API 各语言示例下载
实践教程
表结构设计
数据库交互
常见问题
信息咨询类
数据库使用类
数据库原理类
API 文档
History
Introduction
API Category
Making API Requests
Table Group APIs
Other APIs
Table APIs
Cluster APIs
Data Types
Error Codes
相关协议
服务等级协议
服务条款
词汇表
联系我们

数据库交互

PDF
聚焦模式
字号
最后更新时间: 2024-12-04 10:02:30

游戏服务器端的最佳实践

1. 在部分字段读写的场景下推荐部分字段读取和更新,减少网络传输大小和磁盘读写次数,避免获取无效数据。
2. 对于写操作时响应包需要返回数据记录的,建议根据实际情况设置 result_flag,例如 update 后需要获取到修改后的数据记录,建议 result_flag 设置为2;如果不需要写操作返回数据记录,则 result_flag 设置为0。
3. 对于批处理的命令字,例如 batchget、listgetall、getbypartkey 等,建议按照 offset 和 limit 获取数据记录,limit 推荐是 200,gameserver 端开启分包返回。
4. list 相关的表,listaddafter 时需要注意队列满时配置淘汰规则,推荐采用队头插入、队尾删除或者队头删除、队尾插入的方式。
5. list 相关的表,例如 listreplace、listdelete、listbatchdelete 时,需要传递正确的 index。
6. gameserver 在读数据前,需要确保获取的数据记录 value 字段是有值的,例如 value 字段 A、B、C,本次 gameserver 获取的数据记录是A、B,则C字段是没有值的,请谨慎使用。
7. 推荐 gameserver 本地做超时控制,不推荐采用按照 gameserver 的回包做超时判断,需要 gameserver 本地主动的做超时判断。
8. gameserver 在遍历时,推荐从存储层从节点上获取数据,避免影响主节点的性能。
9. 不推荐对大字段进行 memset 操作,耗费更多的 CPU,推荐对大数据结构的部分字段设置为0的方式进行初始化。
10. gameserver 端在处理发往 Tcaplus 的请求和来自 Tcaplus 的响应时,建议采用分治的方法,处理部分发往 Tcaplus 的请求,再处理来自 Tcaplus 的响应包。

系统设计的最佳实践

1. 高频字段、需要一次性原子性操作的字段推荐独立成表。
2. 游戏服务器端在做数据回写时,建议进行流控、按照时间离散化处理。
3. 可以支持动态修改表结构,提供表的数据转换插件。
4. 回档支持全区全服、表级别、记录级别的冷备时间点回档、精确时间点回档。
5. 推荐采用分区分服模型,全区全服和分区分服都可以动态扩展接入层、存储层节点。
6. 具有业务关联的多个内容需要合并在单个表里,避免出现分布式事务问题。
7. 推荐开启压缩功能,包括请求包和响应包压缩、记录压缩功能。

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈