本文实例讲述了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
暂无评论内容