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初学者最感迷茫的问题小结
Mar 27 PHP
PHP和Mysqlweb应用开发核心技术 第1部分 Php基础-1 开始了解php
Jul 03 PHP
PHP 验证码的实现代码
Jul 17 PHP
php获取数组中重复数据的两种方法
Jun 28 PHP
二进制交叉权限微型php类分享
Feb 07 PHP
php url路由入门实例
Apr 23 PHP
浅谈PHP正则表达式中修饰符/i, /is, /s, /isU
Oct 21 PHP
PHP文件操作方法汇总
Jul 01 PHP
php去除二维数组的重复项方法
Nov 03 PHP
php实现有序数组打印或排序的方法【附Python、C及Go语言实现代码】
Nov 10 PHP
PHP通过curl获取接口URL的数据方法
May 31 PHP
PHP学习记录之常用的魔术常量详解
Dec 12 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
收音机怀古---春雷3P7图片欣赏
2021/03/02 无线电
php中文件上传的安全问题
2006/10/09 PHP
php 魔术函数使用说明
2010/02/21 PHP
mayfish 数据入库验证代码
2010/04/30 PHP
解析PHP中的正则表达式以及模式匹配
2013/06/19 PHP
浅析Dos下运行php.exe,出现没有找到php_mbstring.dll 错误的解决方法
2013/06/29 PHP
PHP获取IP地址所在地信息的实例(使用纯真IP数据库qqwry.dat)
2016/11/15 PHP
PHP并发场景的三种解决方案代码实例
2021/02/27 PHP
给js文件传参数(详解)
2014/07/13 Javascript
轻松学习jQuery插件EasyUI EasyUI表单验证
2015/12/01 Javascript
使用异步controller与jQuery实现卷帘式分页
2019/06/18 jQuery
vue学习笔记之slot插槽基本用法实例分析
2020/02/01 Javascript
微信小程序 bindtap 传参的实例代码
2020/02/21 Javascript
vue中利用three.js实现全景图的完整示例
2020/12/07 Vue.js
[01:20]DOTA2 齐天大圣至宝动态展示
2016/12/13 DOTA
python使用urlparse分析网址中域名的方法
2015/04/15 Python
基于Python os模块常用命令介绍
2017/11/03 Python
Python用sndhdr模块识别音频格式详解
2018/01/11 Python
python3实现SMTP发送邮件详细教程
2018/06/19 Python
python numpy数组的索引和切片的操作方法
2018/10/20 Python
python利用thrift服务读取hbase数据的方法
2018/12/27 Python
Django框架model模型对象验证实现方法分析
2019/10/02 Python
Python图像处理库PIL的ImageFont模块使用介绍
2020/02/26 Python
pycharm第三方库安装失败的问题及解决经验分享
2020/05/09 Python
奥地利度假券的专家:we-are.travel
2019/04/10 全球购物
大学毕业生自荐书怎么写?
2014/01/06 职场文书
社区端午节活动方案
2014/01/28 职场文书
施工材料员岗位职责
2014/02/12 职场文书
自我鉴定总结
2014/03/24 职场文书
我爱读书演讲稿
2014/05/07 职场文书
党员承诺书怎么写
2014/05/20 职场文书
三严三实对照检查材料
2014/08/25 职场文书
群众路线领导班子整改方案
2014/10/25 职场文书
物价局领导班子四风问题整改措施
2014/10/26 职场文书
你对自己的信用报告有过了解吗?
2019/07/09 职场文书
基于go interface{}==nil 的几种坑及原理分析
2021/04/24 Golang