【发布时间】:2012-06-30 02:58:30
【问题描述】:
设置:想象一个在 redis 中存储 3 类数据的应用程序:
1. 会话信息
2. 用户状态(在线/离线)
3. 用户 3 种最喜欢的颜色
我想问一下设置它的正确架构。我应该:
一种。仅使用不同的密钥存储所有内容?即:
a1) 将每个会话存储为:key = "session id", value = "session information",
a2) 将每个状态存储为:key = "user id", value = "online || offline",
a3) 将每种喜欢的颜色存储为:key = "user color1 || user color2 || user color3", value = "color name"
湾。使用不同的键存储会话,并使用状态/最喜欢的颜色集?即:
b1) 将每个会话存储为:key = "session id", value = "session information",
b2)在线和离线创建2组:“set online”中的每个在线用户,“set offline”中的每个离线用户
b3) 为每个用户创建一个“颜色组”:在每个组中,存储 3 种最喜欢的颜色。
C。使用不同的键存储会话,并使用状态/喜欢的颜色列表?
c1) 存储每个会话:key = "session id", value = "session information",
c2) 创建 2 个在线和离线列表:“在线列表”中的每个在线用户,“离线列表”中的每个离线用户
c3) 为每个用户创建一个“颜色列表”:在每个列表中,存储 3 种最喜欢的颜色。
d。其他选择?
我主要关心性能。我想对会话、状态、颜色进行查询,以尽可能提高效率(假设有 500 万+用户)。
【问题讨论】: