2

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

发布是通过 LPUSH 使用评论项目的 id 完成的。检索通过 LRANGE 完成,然后通过结果数组循环。

我想知道这是否是处理评论的最佳方式?在性能水平上这是一个好主意吗?

另外,我将如何进行适度?这似乎不是从列表中删除特定项目的方法。

提前致谢。

4

1 回答 1

0

如果您希望能够基于索引而不是使用LREM(根据列表项值查找和删除)删除评论,您可以使用集合和哈希。

为每个帖子保留一个简单的集合,并带有该帖子的评论 ID:

SADD Comments:post:1 1
SADD Comments:post:1 2

(这将标记帖子 ID 1 具有评论 ID 1 和 2)

然后为每个评论设置一个哈希键:

HSET Comments:1 1 "This will be a comment for post 1"
HSET Comments:1 2 "A second comment for the same post"

Comments:1然后您可以查询所有评论的哈希值,例如帖子 ID 1:

HGETALL Comments:1

可以像这样删除单个评论:

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

(这里删除第一条评论)。

于 2012-07-23T17:16:10.183 回答