金庆的专栏

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  423 随笔 :: 0 文章 :: 454 评论 :: 0 Trackbacks

open-match的redis数据


(金庆的专栏 2018.9)

open-match 是Google的开源游戏匹配服框架。

https://github.com/GoogleCloudPlatform/open-match

匹配中所用到的玩家数据会保存在 redis 中。查看
`open-match\internal\statestorage\redis\playerq\playerq.go`
可以了解redis保存的数据。

redis中有以下键值。

playerID


玩家ID形如:`bfd09c94d646493f834a4abe83a5a68c`, 类型为 hash. 有以下字段:

playerID.properties


保存玩家数据的json串。如:

{
    "char.paladin": 1538102377,
    "map.eastworld": 1538102377,
    "mmr.rating": 1740,
    "mode.ctf": 1538102377,
    "timestamp.enter": 1538102377
}


玩家数据的每项值都要求为整数.

indices


set 类型,保存所有玩家数据键。如:

127.0.0.1:6379> smembers indices
1) "timestamp.enter"
2) "map.eastworld"
3) "mmr.rating"
4) "mode.ctf"
5) "char.paladin"

好像没用到。

玩家数据键


如 `timestamp.enter`, 类型为 zset.
每个玩家数据键都建立了一个排序集,按该玩家数据值排序,成员为 playerID。

例如:

127.0.0.1:6379> zrange mmr.rating 1 3 WITHSCORES
1) "ef3736ef2f7941f1a159f279703d5f58"
2) "746"
3) "17ca3bf3a2134c2c90cbe48ebc29f9cb"
4) "891"
5) "b6450b311f3f413595e824897015c462"
6) "891"
posted on 2018-09-28 14:01 金庆 阅读(577) 评论(0)  编辑 收藏 引用 所属分类: 2. 网游开发

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理