Redis存储大列表

问题描述

我对Redis还是很陌生,我不确定我的用例是否适合Redis

我需要按公司ID存储用户列表。

"companyA" : [
    {userName: xyz1,experience: 23,skills: [{name: python,score: 10},...],profilePicture:...},{userName: xyz2,skills:[{name: react,{userName: xyz3,skills:[{name: java,{userName: xyz4,skills:[{name: javascript,]

现在我有一个scoringFunction(companyId,skills[]),需要一个companyID和一系列技能。然后,该功能将从Redis中检索所有用户,并根据给定的技能列表计算分数。

我想知道这是否与Redis有关,因为每个公司的用户列表会相对较大。我觉得每次解析该数组中的对象都会占用大量内存...

我的两个问题:

  • 我应该使用Redis吗?如果这样,是将用户存储为列表吗?
  • 此用例是否有更好的选择?

谢谢!

解决方法

您可以使用列表数据类型来存储公司中用户ID的列表

例如:company:<id>作为键,user:1user:2,....作为列表项。

然后用户meta转到另一个键user:<id>,可以是哈希或字符串