我正在使用列表在我的网站上制作一个非常简单的评论系统;
发布是通过 LPUSH 使用评论项目的 id 完成的。检索通过 LRANGE 完成,然后通过结果数组循环。
我想知道这是否是处理评论的最佳方式?在性能水平上这是一个好主意吗?
另外,我将如何进行适度?这似乎不是从列表中删除特定项目的方法。
提前致谢。
我正在使用列表在我的网站上制作一个非常简单的评论系统;
发布是通过 LPUSH 使用评论项目的 id 完成的。检索通过 LRANGE 完成,然后通过结果数组循环。
我想知道这是否是处理评论的最佳方式?在性能水平上这是一个好主意吗?
另外,我将如何进行适度?这似乎不是从列表中删除特定项目的方法。
提前致谢。
如果您希望能够基于索引而不是使用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
(这里删除第一条评论)。