【发布时间】:2022-09-25 15:18:06
【问题描述】:
我以前没有使用 Redis 的经验,我正在编写一个简单的应用程序来更好地了解它。
在我的应用程序中,有一个player(和他的player_id)可以玩一个或多个game(每个都有它的game_id),我想保存玩家的start_date和last_played 信息。
我在 Redis 中创建了一个 registration 键作为哈希,我计划在其中添加几条 <player_id_game_id> 记录,其 JSON 值为
{
\"start_date\": ...,
\"last_played\": ...
}
但我很快遇到了一个问题,我无法通过 Redis 查询获取单个用户的所有游戏(类似于 HGET registration 10_* 获取所有玩家 10 的游戏)
然后我切换到玩家列表的游戏方法
{
\"games\":[
{
\"start_date\": ...,
\"last_played\": ...
},
{
\"start_date\": ...,
\"last_played\": ...
}...
]
}
这样HGET registration 10 就会得到所有玩家 10 的游戏列表
然而,这伴随着每个更新操作需要我从 Redis 获取列表,修改它然后更新 Redis 中的记录的意识,并且我担心具有更大数据量和/或操作的性能。
这是一个好方法,还是有更好的方法?我不关心这个示例应用程序的具体实现(例如,将数据存储为 JSON 并不重要),而是针对类似情况的“正确”(或最佳)设计。
提前致谢。
标签: redis