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,我正在我的网站上制作一个非常简单的评论系统,使用列表 过帐是通过LPUSH完成的,带有注释项的id。检索是通过LRANGE完成的,然后通过生成的数组进行循环 我想知道这是否是处理评论的最佳方式?就性能而言,这是个好主意吗 还有,我该如何去追求节制呢?这似乎不是从列表中删除特定项的方法 提前谢谢 如果希望能够基于索引删除注释,而不是使用基于列表项值的查找和删除,则可以使用集合和哈希 为每个帖子保留一个简单的设置,其中包含该帖子上的评论id: SADD Comments:post:1 1 SADD

我正在我的网站上制作一个非常简单的评论系统,使用列表

过帐是通过LPUSH完成的,带有注释项的id。检索是通过LRANGE完成的,然后通过生成的数组进行循环

我想知道这是否是处理评论的最佳方式?就性能而言,这是个好主意吗

还有,我该如何去追求节制呢?这似乎不是从列表中删除特定项的方法


提前谢谢

如果希望能够基于索引删除注释,而不是使用基于列表项值的查找和删除,则可以使用集合和哈希

为每个帖子保留一个简单的设置,其中包含该帖子上的评论id:

SADD Comments:post:1 1
SADD Comments:post:1 2
这将标记具有注释ID 1和2的帖子ID 1

然后为每个注释设置一个哈希键:

HSET Comments:1 1 "This will be a comment for post 1"
HSET Comments:1 2 "A second comment for the same post"
然后,您可以查询散列注释:1,以查找有关的所有注释,例如post ID 1:

HGETALL Comments:1
删除单个注释的方法如下:

SREM Comments:post:1 1
HDEL Comments:1 1

此处删除第一条注释。

如果您希望能够基于索引删除注释,而不是使用基于列表项值的查找和删除,则可以使用集合和哈希

为每个帖子保留一个简单的设置,其中包含该帖子上的评论id:

SADD Comments:post:1 1
SADD Comments:post:1 2
这将标记具有注释ID 1和2的帖子ID 1

然后为每个注释设置一个哈希键:

HSET Comments:1 1 "This will be a comment for post 1"
HSET Comments:1 2 "A second comment for the same post"
然后,您可以查询散列注释:1,以查找有关的所有注释,例如post ID 1:

HGETALL Comments:1
删除单个注释的方法如下:

SREM Comments:post:1 1
HDEL Comments:1 1

此处删除第一条注释。

您认为从性能角度来看,使用集合和哈希值是否也更好?对于删除,SREM中的on以O1删除1项为例,而在LREM中,N是列表的长度。您认为从性能角度来看,使用集合和哈希值是否也更好?对于删除,在SREM中,ON以O1删除1项为例,在LREM中,N是列表的长度。