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中的fifo跟踪_Redis_Relationships_Fifo - Fatal编程技术网

redis中的fifo跟踪

redis中的fifo跟踪,redis,relationships,fifo,Redis,Relationships,Fifo,我试图在Redis中实现以下系统,但我不确定如何实现,因为我还需要某种队列系统。我是这么想的: 用户A、B和C都在跟踪用户X,所以为了让用户X检查他的追随者,我想使用如下列表: X [A, B, C] 你认为这是一个可行的解决方案吗 如果是这样的话,我仍然有“队列”问题,比如说一个人只能跟随一个人,如果用户A选择跟随用户Y,那么项目“A”应该从列表X中删除 这听起来可能令人困惑:我不能很好地解释,因为我不是本地人。还需要注意的是,这些操作的负载将每秒发生,因此,Redis是否是最佳选择 提前谢

我试图在Redis中实现以下系统,但我不确定如何实现,因为我还需要某种队列系统。我是这么想的:

用户A、B和C都在跟踪用户X,所以为了让用户X检查他的追随者,我想使用如下列表:

X [A, B, C]
你认为这是一个可行的解决方案吗

如果是这样的话,我仍然有“队列”问题,比如说一个人只能跟随一个人,如果用户A选择跟随用户Y,那么项目“A”应该从列表X中删除

这听起来可能令人困惑:我不能很好地解释,因为我不是本地人。还需要注意的是,这些操作的负载将每秒发生,因此,Redis是否是最佳选择


提前谢谢。

我不明白您需要什么?您可以使用以下结构:

X:followers-是一个包含跟随者ID的集合

X:follows-是一个字符串,包含该用户遵循的用户ID

当X跟随Y时,您只需执行以下操作:

srem $(X:follows) X
sadd Y:followers X
set X:follows Y

我需要队列,以便某个用户跟踪的人数不能超过(比如)5人。当用户跟随其他人时,第一个跟随的人会被取消跟随。好的,那么当然你可以使用list with rpush来推动尾部的项目,使用lpop从头部移除一个项目,使用llen来获得列表长度,或者使用jusr ltrim将列表修剪到必要的长度。是的,我考虑的问题是关于性能。因为这样的话,每次我跟踪别人的时候,我都需要转到另一个列表,并将自己从列表中删除,这会导致懒惰吗?不会,因为Redis非常聪明