【发布时间】:2021-01-28 04:48:16
【问题描述】:
我正在构建一个游戏服务器,其中我持有一个连接用户列表,同时还有一个战斗列表,这两个列表是分开的。
我将战斗数据保存在 Redis 数据库中,以战斗 ID 作为键, 我可以在同一个 Redis 数据库中使用已连接用户列表,并以优雅的方式获取已连接用户列表,同时避免战斗数据吗?
我找不到解决方案,目前在我的 nodeJs 服务器的 JS 字典中保存连接的用户
更新:
澄清疑问,
连接的用户对象是 -
connectedUser = {
nickname: string, (key)
socketId: string,
status: string,
rating: number
}
我想使用 getUser(nickname) 来查询数据,这将获取特定用户,并使用 getAllUsers() 来获取所有连接的用户。
至于比赛,它包括所有比赛数据和统计数据
match = {
id: string, (key)
nicknameOne: string,
nicknameTwo: string,
...
}
我用 id 查询匹配项,并认为它适用于哈希表和 hset 以及 hget 复杂性 wize。
关于连接用户的查询,我想知道使用简单的 js 字典是否可以提供更快的查询结果。
js 字典是这样的 -
connectedUsers = {}
adding user -
user = {
key: nickname,
value: {
socketId: string,
status: string,
rating: number
}
}
同时获得这样的特定用户 -
connectedUsers[nickname]
并以这种方式迭代 -
for(let key in connectedUsers) {
//value - connectedUsers[key];
}
【问题讨论】:
-
不确定到底要支持哪些查询。如果您能提供一些您希望拥有的数据结构和查询示例,将会有所帮助。
标签: redis