Data structures 我将如何在Redis中构建这些数据?

Data structures 我将如何在Redis中构建这些数据?,data-structures,redis,Data Structures,Redis,下面是我希望数据结构的示例: [games]: [game_1]: players: 10 maxPlayers: 24 state: "PLAYING" currentMap: "Example Map" [game_2]: players: 0 maxPlayers: 24 state: "LOBBY" currentMap: "None" 我正在使用Redis(Je

下面是我希望数据结构的示例:

[games]:
   [game_1]:
       players: 10
       maxPlayers: 24
       state: "PLAYING"
       currentMap: "Example Map"
   [game_2]:
       players: 0
       maxPlayers: 24
       state: "LOBBY"
       currentMap: "None"
我正在使用
Redis
Jedis
)的Java实现来缓存注册游戏服务器的数据。代理服务器将所有注册的游戏服务器连接在一起,但是,代理服务器无法中继此类数据。因此,我采用了
Redis
方法,并将其集成到所有游戏服务器共享的核心插件中。
大厅
服务器将能够从
Redis
访问数据,向玩家显示实时游戏统计数据。我将如何着手构建这个?我对Redis相当陌生,数小时的搜索没有帮助。请用简单的语言解释一下。
我希望能够进行方法调用,以获取特定游戏的数据,并遍历
Redis
数据库中所有缓存的游戏。(例如游戏:{“
game_1
”,“
game_2
”})

一种方法是:

  • 将游戏存储在散列中-每个游戏一个散列。散列的键名应该是游戏的标识符,其中的字段->值应该与游戏的属性相对应。在Redis行话中,这应该通过以下方式完成:

    HMSET game\u 1玩家10名MaxPlayer 24状态播放当前地图“示例地图”

  • 游戏更新只需调用
    HSET game_1 players 11
    即可触摸特定属性

  • 您可以分别使用
    HGET
    HMGET
    HGETALL
    读取特定游戏的属性、属性或所有属性

  • 可以通过以下两种方式之一获得所有游戏:

    a。使用
    SCAN
    检索数据库中的键名,并在步骤3中对每个键调用API。赞成:没有额外的维护,反对:可能会慢一些

    b。维护一组由游戏标识符(密钥名)组成的API—获取所有游戏,获取该集合的内容,并为其每个成员使用步骤3中的API。优点:获取所有游戏的性能更好,缺点:需要维护另一个数据结构(集合)