我对redis还很陌生,我不确定我的用例是否适合redis。
我需要存储每个公司id的用户列表。
"companyA" : [
{userName: xyz1, experience: 23,skills: [{name: python, score: 10}, ...], profilePicture:...},
{userName: xyz2, experience: 23,skills:[{name: react, score: 10}, ...], profilePicture:...},
{userName: xyz3, experience: 23,skills:[{name: java, score: 10}, ...], profilePicture:...},
{userName: xyz4, experience: 23,skills:[{name: javascript, score: 10}, ...], profilePicture:...},
]
现在我有一个 scoringFunction(companyId, skills[])
那得花点时间 companyID
还有一份技能清单。然后,这个函数将从redis中检索所有用户,并根据给定的技能列表计算得分。
我想知道这是否是redis的一个相关用例,因为每个公司的用户列表可能会相对较大。我感觉每次解析这个数组中的对象都会消耗大量内存。。。
我的两个问题:
我应该使用redis吗?如果是的话,将用户存储为一个列表是一种方法吗?
对于这个用例是否有更好的替代方案?
提前谢谢!
1条答案
按热度按时间1tu0hz3e1#
您可以使用列表数据类型来存储公司中的用户id列表
如:
company:<id>
作为关键和user:1
,user:2
, .... 作为列表项。然后用户meta转到另一个键
user:<id>
,可以是哈希或字符串