Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
这是Redis的一个好用例吗?_Redis - Fatal编程技术网

这是Redis的一个好用例吗?

这是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

比如说,我有一种让用户彼此成为朋友的能力,我有一个小部件,可以显示用户的朋友

这里会使用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.foo“}
)和一组关系用户ID(例如,
用户:1:friends=>(2,3,4,5)
)正确的做法是,然后需要为好友集中的每个用户执行
hgetall用户:
,以获取该用户的信息。HGETALL是O(N),其中N是字段数;对于像用户对象这样字段数量较少且(相对)固定的对象,HGETALL实际上是O(1),因此额外的查找不会非常昂贵。您还可以使用redis管道来批量查找,并将网络费用降至最低。

非常感谢。你给了我大量的思考和研究。