redis存储大列表

ecbunoof  于 2021-06-09  发布在  Redis
关注(0)|答案(1)|浏览(447)

我对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吗?如果是的话,将用户存储为一个列表是一种方法吗?
对于这个用例是否有更好的替代方案?
提前谢谢!

1tu0hz3e

1tu0hz3e1#

您可以使用列表数据类型来存储公司中的用户id列表
如: company:<id> 作为关键和 user:1 , user:2 , .... 作为列表项。
然后用户meta转到另一个键 user:<id> ,可以是哈希或字符串

相关问题