<?php
/**
* @description:
* 用Redis构建一个文章投票网站
* 1. 发布文章
* 用hash"article:{$articleId}:content"存储文章的内容、标题、标签等
* 用zset"article:time"存储文章的发布时间,作为发布时间时间排行榜
* 用zset"article:score"存储文章的发布时间和点赞累计后的综合值,作为综合评分排行榜
* 用set"article:{$articleId}:vote"存储给用户点赞的用户id,并设置一周的过期时间
* 用set'article:tags'存储所有的文章标签
* 用set"{$tag}:{$tagId}"存储每一个文章标签下的文章id
*
* @author: 0Robert0
*/
class TestRedis
{
const ADD_SCORE = 432;
const EXPIRATION_TIME = 86400 * 7;
private $redis;
public function __construct()
{
$this->redis = new Redis();
//连接参数:ip、端口、连接超时时间,连接成功返回true,否则返回false
$this->redis->connect('127.0.0.1', 6379);
}
// 发布文章
// 先获取文章id;再创建文章发布时间有序集合;创建文章综合评分有序集合;
// 然后创建为文章点赞的用户集合,并把作者本身写入进去,不允许自己给自己点赞,并设置一周的
// 过期时间,为了内存考虑一周之后清掉用户点赞集合
// 设置文章标签
public function publishArticle($authorId, $tag)
{
// TODO 多个命令的串联操作,应该开启事务
$articleId = $this->getId('article:id');
$tagId = $this->getId('tag:id');
$articleContent = [
'title' => 'article title' . $articleId,
'author' => 'Rebort' . $articleId,
'content' =>
Redis示例---构建文章投票网站
最新推荐文章于 2022-02-11 18:59:05 发布
本文介绍了如何利用Redis实现一个文章投票网站的功能,通过PHP进行交互,利用Redis的数据存储和高速读写特性,高效地记录和统计用户投票情况。
摘要由CSDN通过智能技术生成