您的位置:首页 > 编程学习 > > 正文

php消息队列redis(redis+php实现微博二发布与关注功能详解)

更多 时间:2021-10-23 10:23:56 类别:编程学习 浏览量:1682

php消息队列redis

redis+php实现微博二发布与关注功能详解

本文实例讲述了redis+php实现微博发布与关注功能。分享给大家供大家参考,具体如下:

数据结构:

set post:postid:3:time timestamp
set post:postid:3:userid 5
set post:postid:3:content 测试发布哈哈哈哈

incr global:postid
set post:postid:$postidcho "用户名密码不能够为空!";

关注微博

following:3

被关注(粉丝)

followed:3

把发布的微博推给自己的粉丝

recivepost:10 postid

微博的发布代码:

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • include("function.php");
  • include("header.php");
  • $content = I('content');
  • if(!$content){
  •   error('内容不能够为空');
  • }
  • $user = isLogin();
  • if($user==false){
  •   header("location:index.php");
  •   exit();
  • }
  • $r = redis_connect();
  • $postid = $r->incr('global:postid');
  • //$r->set("post:postid:".$postid.":time",time());
  • //$r->set("post:postid:".$postid.":userid",$user['userid']);
  • //$r->set("post:postid:".$postid.":content",$content);
  • $r->hmset("post:postid:".$postid,array('userid'=>$user['userid'],'username'=>$user['username'],'time'=>time(),'content'=>$content));
  • //把微博推给自己的粉丝
  • $fans = $r->smembers("followed:".$user['userid']);
  • $fans[] = $user['userid'];
  • foreach($fans as $fansid){
  •   $r->lpush('recivepost:'.$fansid,$postid);
  • }
  • //单独累计个人发布的信息
  • $r->lpush('userpostid:'.$user['userid'],$postid);
  • header("location:home.php");
  • exit;
  • include("bottom.php");
  • 微博的关注代码:

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • include("function.php");
  • include("header.php");
  • if(isLogin()==false){
  •   header("location:index.php");
  •   exit;
  • }
  • $user = isLogin();
  • $uid = trim($_GET['uid']);
  • $f = trim($_GET['f']);
  • $r = redis_connect();
  • if($f==0){
  •   //将关注与被关注的数据结构存入redis
  •   $r->sadd("following:".$user['userid'],$uid);
  •   $r->sadd("followed:".$uid,$user['userid']);
  • }else{
  •   //取消关注
  •   $r->srem("following:".$user['userid'],$uid);
  •   $r->srem("followed:".$uid,$user['userid']);
  • }
  • //根据传递过来的userid查找username
  • $uname = $r->get("user:userid:".$uid.":username");
  • header("location:profile.php?u=".$uname);
  • include("bottom.php");
  • 希望本文所述对大家PHP程序设计有所帮助。

    原文链接:https://www.cnblogs.com/lisqiong/p/5580927.html

    标签:redis PHP 微博
    您可能感兴趣