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

微博的发布代码:

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\");

微博的关注代码:

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相关内容感兴趣的读者可查看本站专题:《php+redis数据库程序设计技巧总结》、《php面向对象程序设计入门教程》、《PHP基本语法入门教程》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容