我正在尝试使用Redis数据库构建评论系统,我目前正在使用哈希来存储评论数据,但我面临的问题是,在10或12条评论之后,评论会丢失订单并开始随机出现,任何人知道应该使用什么数据类型来构建使用Redis的评论系统,目前我的哈希就是这种形式。
postid:评论纪念:用户名“Testcomment”
谢谢,任何帮助将不胜感激。
答案 0 :(得分:0)
使用我的网络应用程序,我使用的是这样的格式。
(appname):(postid):(comment id) - The hash of the posts
(appname):(postid):count - The latest comment id
然后我查询(appname):( postid):count键获取我应该运行循环的次数,获取(appname):( postid):( comment id)hash的内容。< / p>
示例代码
$c = $redis->get('(appname):(postid):count');
for($i = 0; $i<$c; $i++) {
var_dump($redis->hgetall('(appname):(postid):'.$i));
}
答案 1 :(得分:0)
设置哈希值以便按键快速访问,而不是按顺序检索。如果您需要按特定顺序排列的项目,请尝试列表或排序集。
它最初工作的原因是对小集的优化 - 当你只有少量项时,列表是最有效的结构,所以这就是redis在内部使用的。当你获得更多的项目时,需要一个实际的hashmap来进行有效的查询,redis重新排列数据,以便按哈希而不是按顺序排序。