Skip to content
DataStorage

数据处理 / DataStorage

DataStorage Class

数据存储

Precautions

在调用DataStorage相关接口时,每一个Key的对应值在数据服务器的读取和修改都有频率限制,主要表现在:接口调用时至一分钟前的时间区间内,某个Key的对应值在后端数据服务器上被获取Get、改写Set、删除Remove的总次数不能超过 (60+游戏设定的最大人数×10)次,不管它是在哪个服务器被操作的;如果时间区间内超限,请求会失败,然后Set、Remove会返回 FREQUENCY_OVERRUN(操作失败:请求频率超限) 而Get会catch到error timeout。

  1. 这些限制是数据服务器层面针对单个Key来的,每个Key之间的限制互相独立,和游戏服务器无关。
  2. Player相关的接口其实也算是一个Key,只不过是和玩家信息强相关的Key,也会受到上述限制;建议用 asyncSetData(属性名+玩家id+其他描述, 要存的值)来分存玩家相关的需要经常存取数据,以免堵塞。
  3. 对于玩家相关的信息,建议在ts层建立数据缓存,进行一定的数据托管;即通过ts脚本逻辑让DS服务器临时缓存玩家数据,只在初始化的时候进行get,在离线或其他必要时set,以减轻对后端数据服务器的压力,保证稳定性

Table of contents

Methods

asyncGetData(key: string): Promise<DataStorageResult> server
异步获取自定义数据
asyncGetLocalData(key: string): Promise<DataStorageResult> client
获取本地数据
asyncGetOtherGameData(gameId: string, key: string): Promise<DataStorageResult> server
异步获取其他游戏保存的数据
asyncRemoveData(key: string): Promise<DataStorageResultCode> server
异步删除自定义数据
asyncRemoveLocalData(key: string): Promise<DataStorageResultCode> client
删除本地数据
asyncSetData(key: string, value: any): Promise<DataStorageResultCode> server
异步设置自定义数据
asyncSetLocalData(key: string, value: any): Promise<DataStorageResultCode> client
设置本地数据
asyncSetOtherGameData(gameId: string, key: string, value: any): Promise<DataStorageResultCode> server
异步设置其他游戏保存的数据
getDataSize(data: any): number
返回data的当前大小。单位为byte(字节)。

Methods

asyncGetData

Static asyncGetData(key): Promise<DataStorageResult> server

异步获取自定义数据

Parameters

key string字符串类型键,用来查找唯一标识存储的数据
range: 字符串长度依据 asyncSetData 设置的而定。

Returns

Promise<DataStorageResult>之前保存的自定义数据

asyncGetLocalData

Static asyncGetLocalData(key): Promise<DataStorageResult> client

获取本地数据

Parameters

key string字符串类型的键,用来唯一标识存储的数据。
range: 字符串长度不做限制,但请设置合适的标识。

Returns

Promise<DataStorageResult>数据获取结果

asyncGetOtherGameData

Static asyncGetOtherGameData(gameId, key): Promise<DataStorageResult> server

异步获取其他游戏保存的数据

Parameters

gameId string开发者后台其他游戏的 gameId。
range: 字符串长度依据 gameId 长度而定。
key string字符串类型键,用来查找唯一标识存储的数据。
range: 字符串长度依据设置长度而定。

Returns

Promise<DataStorageResult>其他游戏保存的数据

asyncRemoveData

Static asyncRemoveData(key): Promise<DataStorageResultCode> server

异步删除自定义数据

Parameters

key string字符串类型键,用来查找唯一标识存储的数据
range: 字符串长度依据 asyncSetData 设置的而定。

Returns

Promise<DataStorageResultCode>数据删除状态

asyncRemoveLocalData

Static asyncRemoveLocalData(key): Promise<DataStorageResultCode> client

删除本地数据

Parameters

key string字符串类型的键,用来唯一标识存储的数据。
range: 字符串长度不做限制,但请设置合适的标识。

Returns

Promise<DataStorageResultCode>数据删除状态

asyncSetData

Static asyncSetData(key, value): Promise<DataStorageResultCode> server

异步设置自定义数据

Parameters

key string字符串类型的键,用来唯一标识存储的数据。
range: 字符串长度不做限制,但请设置合适的标识。
value any要保存的数据,不支持 map 类型及数据结构中包含 map,且无法还原 function

Returns

Promise<DataStorageResultCode>数据储存状态

asyncSetLocalData

Static asyncSetLocalData(key, value): Promise<DataStorageResultCode> client

设置本地数据

Parameters

key string字符串类型的键,用来唯一标识存储的数据。
range: 字符串长度不做限制,但请设置合适的标识。
value any要保存的数据,不支持 map 类型及数据结构中包含 map,且无法还原 function

Returns

Promise<DataStorageResultCode>数据储存状态

Precautions

每条数据最多存储64kb的编码数据且本地存储的总数据大小不可以超过5mb,超过此限制的数据都不能被存储。


asyncSetOtherGameData

Static asyncSetOtherGameData(gameId, key, value): Promise<DataStorageResultCode> server

异步设置其他游戏保存的数据

Parameters

gameId string开发者后台其他游戏的 gameId
range: 字符串长度依据 gameId 长度而定。
key string字符串类型键,用来查找唯一标识存储的数据
range: 字符串长度依据设置长度而定。
value any要保存的数据,不支持 map 类型及数据结构中包含 map,且无法还原 function

Returns

Promise<DataStorageResultCode>设置其他游戏的数据状态码

getDataSize

Static getDataSize(data): number

返回data的当前大小。单位为byte(字节)。

Parameters

data any数据键值对对象。

Returns

number数据大小