评论系统与redis - 使用列表?

时间:2012-07-23 14:20:13

标签: redis

我正在使用列表在我的网站上创建真正的简单评论系统;

通过LPUSH完成发布,其中包含注释项的ID。检索通过LRANGE完成,然后通过生成的数组循环。

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

另外我该如何审核呢?它似乎不是从列表中删除特定项目的方法。

提前致谢。

1 个答案:

答案 0 :(得分:0)

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

为每个帖子保留一个简单的集合,并在该帖子上添加评论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"

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

HGETALL Comments:1

删除单个评论可以像:

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

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