ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
#### 发布文章 ~~~ //一票的分数 const SCORE = 86400 / 200; //发布文章 function postArticle($redis,$author_id, $title, $link) { $article_id = $redis->incr("article:"); //获取文章ID $voted = 'voted:' . $article_id; $redis->sAdd($voted, 'user:' . $author_id); //将作者id添加到集合中 $redis->expire($voted, 7 * 86400); //设置过期时间 $now = time(); $article = 'article:' . $article_id; $redis->hMset($article, [ 'author' => $author_id, 'title' => $title, 'link' => $link, 'time' => $now, 'votes' => 1, ]); $redis->zAdd('score:', $now + SCORE, $article); //分数 $redis->zAdd('time:', $now, $article); //创建时间 $redis->close(); //关闭流 return $article_id; } ~~~ #### 对文章进行投票 ~~~ function articleVote($redis,$user_id, $article_id) { $cutoff = time() - 7 * 86400; if ($redis->zScore('time:', 'article:' . $article_id) < $cutoff) { //检查投票是否截止 echo "投票已截止"; return; } $bool = $redis->sIsMember('article:' . $article_id, $user_id); //检查是否已投过票 if (!$bool) { echo "你已投过票"; return; } $redis->sAdd('article:' . $article_id, $user_id); //记录投票的用户ID $redis->zIncrBy('score:', SCORE, 'article:' . $article_id); //增加分数 $redis->hIncrBy('article:' . $article_id, 'votes', 1); $redis->close(); } ~~~ #### 对文章进行分组 ~~~ ~~~