我正在构建我的应用程序的数据模型,基本上,对于给定的用户,我想保留他/她的朋友列表以及他们每个人的状态(如果他们接受了成为朋友的请求或者如果他们还没有)
我最终得到了几个键:(汤姆的每个朋友都有一个)
friends:tom:status:jessica => joined
friends:tom:status:stephan => joined
friends:tom:status:hubert => pending
friends:tom:status:peter => declined
这是处理该问题的最佳方法,还是应该以其他方式使用列表?
答案 0 :(得分:2)
您可以尝试使用例如hash结构,其中哈希键为friends:tom:status
,字段表示朋友姓名/ ID,值表示其状态。 Hash结构通常比专用键更多memory efficient。
答案 1 :(得分:2)
您可以使用有序集。
让每个状态都有与之相关的分数,加入1,等待2,拒绝3
zadd user1_friends 1 userid 1 userid 2 userid
然后您可以轻松地按类别检索所有用户
zscore user1_friends 1
或者您可以分成3个单独的集合
sadd user1_joined userid1
sadd user1_pending userid3
根据您的要求,任何一种都可以使用