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 相关文章推荐
推荐个功能齐全的发送PHP邮件类
Jan 03 PHP
解析php中die(),exit(),return的区别
Jun 20 PHP
谈谈PHP中substr和substring的正确用法及相关参数的介绍
Dec 16 PHP
一个简单安全的PHP验证码类 附调用方法
Jun 24 PHP
Yii视图操作之自定义分页实现方法
Jul 14 PHP
php简单压缩css样式示例
Sep 22 PHP
PHP实现网站访问量计数器
Oct 27 PHP
PHP实现负载均衡的加权轮询方法分析
Aug 22 PHP
php实现数组重复数字统计实例
Sep 30 PHP
PHP+RabbitMQ实现消息队列的完整代码
Mar 20 PHP
php+ajax实现商品对比功能示例
Apr 13 PHP
php中的钩子理解及应用实例分析
Aug 30 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 模拟 asp.net webFrom 按钮提交事件实例
2014/10/13 PHP
PHP把MSSQL数据导入到MYSQL的方法
2014/12/27 PHP
php简单压缩css样式示例
2016/09/22 PHP
php使用Jpgraph创建3D饼形图效果示例
2017/02/15 PHP
Yii 2.0在Grid中格式化时间方法示例
2017/06/06 PHP
PHP使用PDO创建MySQL数据库、表及插入多条数据操作示例
2019/05/30 PHP
JS Excel读取和写入操作(模板操作)实现代码
2010/04/11 Javascript
jQuery焦点图切换特效插件封装实例
2013/08/18 Javascript
JS函数arguments数组获得实际传参数个数的实现方法
2016/05/28 Javascript
JS实现iframe编辑器光标位置插入内容的方法(兼容IE和Firefox)
2016/06/24 Javascript
JS+CSS3实现超炫的散列画廊特效
2016/07/16 Javascript
只要1K 纯JS脚本送你一朵3D红色玫瑰
2016/08/09 Javascript
AngularJS监听ng-repeat渲染完成的两种方法
2018/01/16 Javascript
Vue.js 利用v-for中的index值实现隔行变色
2018/08/01 Javascript
12个提高JavaScript技能的概念(小结)
2019/05/09 Javascript
node.js Promise对象的使用方法实例分析
2019/12/26 Javascript
python socket多线程通讯实例分析(聊天室)
2016/04/06 Python
PyQT实现菜单中的复制,全选和清空的功能的方法
2019/06/17 Python
如何在Django配置文件里配置session链接
2019/08/06 Python
python函数声明和调用定义及原理详解
2019/12/02 Python
Python3.x+迅雷x 自动下载高分电影的实现方法
2020/01/12 Python
10行Python代码实现Web自动化管控的示例代码
2020/08/14 Python
潘多拉意大利官方网上商城:网上选购PANDORA珠宝
2018/10/07 全球购物
兰蔻英国官网:Lancome英国
2019/04/30 全球购物
国外软件测试工程师面试题
2016/12/09 面试题
应聘医药销售自荐书范文
2014/02/08 职场文书
承诺书范文
2014/06/03 职场文书
《中国梦我的梦》小学生演讲稿
2014/08/20 职场文书
关于读书的演讲稿800字
2014/08/27 职场文书
防灾减灾宣传标语
2014/10/07 职场文书
企业介绍信范文
2015/01/30 职场文书
2015年度优秀员工推荐信
2015/03/23 职场文书
谁动了我的奶酪读书笔记
2015/06/30 职场文书
Ajax请求超时与网络异常处理图文详解
2021/05/23 Javascript
美元符号 $
2022/02/17 杂记
MySQL数据库配置信息查看与修改方法详解
2022/06/25 MySQL