这是Redis的一个好用例吗?
比如说,我有一种让用户彼此成为朋友的能力,我有一个小部件,可以显示用户的朋友 这里会使用Redis通过user.id存储关系吗这是Redis的一个好用例吗?,redis,Redis,比如说,我有一种让用户彼此成为朋友的能力,我有一个小部件,可以显示用户的朋友 这里会使用Redis通过user.id存储关系吗 1,2 1,5 4,1 3,1 1.friends -> 2, 3, 4, 5 但是,然后我需要为那些朋友获取详细信息。我是否正确地假设这将使用查询“id IN(2,3,4,5)”?您肯定可以使用redis来表示此数据。一种策略是对每个用户的详细信息使用哈希,由用户id键入(例如,user:1=>{'name':'foo','email':'foo@foo.f
1,2
1,5
4,1
3,1
1.friends -> 2, 3, 4, 5
但是,然后我需要为那些朋友获取详细信息。我是否正确地假设这将使用查询“id IN(2,3,4,5)”?您肯定可以使用redis来表示此数据。一种策略是对每个用户的详细信息使用哈希,由用户id键入(例如,
user:1=>{'name':'foo','email':'foo@foo.foo“}
)和一组关系用户ID(例如,用户:1:friends=>(2,3,4,5)
)正确的做法是,然后需要为好友集中的每个用户执行hgetall用户:
,以获取该用户的信息。HGETALL是O(N),其中N是字段数;对于像用户对象这样字段数量较少且(相对)固定的对象,HGETALL实际上是O(1),因此额外的查找不会非常昂贵。您还可以使用redis管道来批量查找,并将网络费用降至最低。非常感谢。你给了我大量的思考和研究。