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


Posted in PHP onSeptember 23, 2019

本文实例讲述了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 相关文章推荐
Views rows style模板重写代码
May 16 PHP
PHP实现今天是星期几的几种写法
Sep 26 PHP
php实现扫描二维码根据浏览器类型访问不同下载地址
Oct 15 PHP
php实现的数字验证码及数字运算验证码
Jul 30 PHP
php实现简单的上传进度条
Nov 17 PHP
WordPress中重置文章循环的rewind_posts()函数讲解
Jan 11 PHP
适合PHP初学者阅读的4本经典书籍
Sep 23 PHP
php使用json_decode后数字对象转换成了科学计数法的解决方法
Feb 20 PHP
php 从指定数字中获取随机组合的简单方法(推荐)
Apr 05 PHP
Django中的cookie与session操作实例代码
Aug 17 PHP
详解php协程知识点
Sep 21 PHP
PHP使用HTML5 FormData对象提交表单操作示例
Jul 02 PHP
redis+php实现微博(一)注册与登录功能详解
Sep 23 #PHP
php日志函数error_log用法实例分析
Sep 23 #PHP
php扩展开发入门demo示例
Sep 23 #PHP
PHP使用phpunit进行单元测试示例
Sep 23 #PHP
php快速导入大量数据的实例方法
Sep 23 #PHP
关于Yii中模型场景的一些简单介绍
Sep 22 #PHP
php定期拉取数据对比方法实例
Sep 22 #PHP
You might like
php汉字转拼音的示例
2014/02/27 PHP
php实现mysql事务处理的方法
2014/12/25 PHP
JS隐藏参数post传值实例
2013/04/18 Javascript
Js中的onblur和onfocus事件应用介绍
2013/08/27 Javascript
JS小游戏之仙剑翻牌源码详解
2014/09/25 Javascript
JQuery中DOM事件冒泡实例分析
2015/06/13 Javascript
JS实现点击按钮控制Div变宽、增高及调整背景色的方法
2015/08/05 Javascript
JS常见创建类的方法小结【工厂方式,构造器方式,原型方式,联合方式等】
2017/04/01 Javascript
详解vue项目构建与实战
2017/06/27 Javascript
JS二分查找算法详解
2017/11/01 Javascript
Vue中添加手机验证码组件功能操作方法
2017/12/07 Javascript
vue 根据数组中某一项的值进行排序的方法
2018/08/30 Javascript
H5+C3+JS实现五子棋游戏(AI篇)
2020/05/28 Javascript
解决vue无法设置滚动位置的问题
2018/10/07 Javascript
Vue请求JSON Server服务器数据的实现方法
2018/11/02 Javascript
探索JavaScript中私有成员的相关知识
2019/06/13 Javascript
[06:07]刀塔密之二:攻之吾命受之吾幸
2014/07/03 DOTA
python快速排序代码实例
2013/11/21 Python
python基础教程之基本内置数据类型介绍
2014/02/20 Python
在树莓派2或树莓派B+上安装Python和OpenCV的教程
2015/03/30 Python
Python处理文本换行符实例代码
2018/02/03 Python
python 通过logging写入日志到文件和控制台的实例
2018/04/28 Python
Python下使用Scrapy爬取网页内容的实例
2018/05/21 Python
Python3爬虫之urllib携带cookie爬取网页的方法
2018/12/28 Python
详解Python Qt的窗体开发的基本操作
2019/07/14 Python
Flask框架模板继承实现方法分析
2019/07/31 Python
怎么解决pycharm license Acti的方法
2020/10/28 Python
python 实现"神经衰弱"翻牌游戏
2020/11/09 Python
运动鞋、足球鞋和慕尼黑球衣:Sport Münzinger
2019/08/26 全球购物
数控专业推荐信范文
2013/12/02 职场文书
2015年安康杯竞赛活动总结
2015/03/26 职场文书
工程部岗位职责范本
2015/04/11 职场文书
乡镇安全生产月活动总结
2015/05/08 职场文书
离职员工给领导和同事的感谢信
2015/11/03 职场文书
教你如何用python开发一款数字推盘小游戏
2021/04/14 Python
Redis实现分布式锁的五种方法详解
2022/06/14 Redis