全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

php结合redis高并发下发帖、发微博的实现方法

发帖、发微博、点赞、评论等这些操作很频繁的动作如果并发量小,直接入库是最简单的

但是并发量一大,数据库肯定扛不住,这时可采取延迟发布:先将发布动作保存在队列里,后台进程循环获取再入库

模拟发布微博先进入redis队列

weibo_redis.php

<?php
//此处需要安装phpredis扩展
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$redis->auth("php001");
//连接redis
$web_info= array(
	'uid' => $_REQUEST[uid], //发布者id
	'username' => $_REQUEST[username],//发布者用户名
	'content' =>$_REQUEST[content],//微博内容
);


//将数组转成json来存储
$list = json_encode($web_info);
//lpush向KEY对应的头部添加一个字符串元素
$redis->lpush('weibo_lists',$list);
$redis->close();
var_dump($list);
?>

模拟后台进程从redis队列获取微博

Pdodb.class.php

<?php
class Pdodb{
	public function post($uid='',$username='',$content=''){
		try{
			$dsn = "mysql:localhost;dbname=localhost;dbname=big";
			$db = new PDO($dsn,'big','123456');	
			$db->exec("SET NAMES UTF8");
			$sql ="insert into ih_weibo(uid,username,content)values('$uid','$username','$content')";
			//echo $sql;
			$db->exec($sql);
		}catch(PDOException $e){
			echo $e->getMessage();
		}
	}
}

weibo_mysql.php

<?php
require_once 'Pdodb.class.php';
set_time_limit(0); // 取消脚本运行时间的超时上限


$pdo = new Pdodb();
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);


while (true) {
	//返回的列表的大小。如果列表不存在或为空,该命令返回0。如果该键不是列表,该命令返回false
	if($redis -> lsize('weibo_lists')){
		//从LIST头部删除并返回删除数据
		$info = $redis->rpop('weibo_lists');
		$info = json_decode($info);
		$pdo->post($info->uid,$info->username,$info->content);
	}
	$redis->close();
	sleep(10);//延时10秒
}

后台执行weibo_mysql.php

nohup php /var/www/html/big/weibo_mysql.php &

以上这篇php结合redis高并发下发帖、发微博的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


# redis  # 高并发  # PHP并发场景的三种解决方案代码实例  # php并发加锁问题分析与设计代码实例讲解  # PHP解决高并发的优化方案实例  # php多进程模拟并发事务产生的问题小结  # PHP利用Mysql锁解决高并发的方法  # php curl批处理实现可控并发异步操作示例  # php处理抢购类功能的高并发请求  # PHP+Redis 消息队列 实现高并发下注册人数统计的实例  # PHP开发中解决并发问题的几种实现方法分析  # PHP使用Redis实现防止大并发下二次写入的方法  # 详解php处理大并发大流量大存储  # 给大家  # 一大  # 希望能  # 不存在  # 这篇  # 最简单  # 先将  # 小编  # 转成  # 大家多多  # 为空  # 再入  # uid  # id  # _REQUEST  # auth  # array  # web_info  # KEY  # lpush 


相关文章: 常州自助建站工具推荐:低成本搭建与模板选择技巧  美食网站链接制作教程视频,哪个教做美食的网站比较专业点?  C#如何使用XPathNavigator高效查询XML  胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?  建站主机无法访问?如何排查域名与服务器问题  TestNG的testng.xml配置文件怎么写  c# Task.Yield 的作用是什么 它和Task.Delay(1)有区别吗  矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  建站ABC备案流程中有哪些关键注意事项?  视频网站制作教程,怎么样制作优酷网的小视频?  制作销售网站教学视频,销售网站有哪些?  建站之星Pro快速搭建教程:模板选择与功能配置指南  C++中引用和指针有什么区别?(代码说明)  标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?  网站设计制作公司地址,网站建设比较好的公司都有哪些?  代刷网站制作软件,别人代刷火车票靠谱吗?  全景视频制作网站有哪些,全景图怎么做成网页?  制作电商网页,电商供应链怎么做?  制作门户网站的参考文献在哪,小说网站怎么建立?  浅谈Javascript中的Label语句  郑州企业网站制作公司,郑州招聘网站有哪些?  公司网站建设制作费用,想建设一个属于自己的企业网站,该如何去做?  潍坊网站制作公司有哪些,潍坊哪家招聘网站好?  已有域名能否直接搭建网站?  如何用狗爹虚拟主机快速搭建网站?  车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?  建站之星安装后如何自定义网站颜色与字体?  深圳网站制作平台,深圳市做网站好的公司有哪些?  深圳网站制作费用多少钱,读秀,深圳文献港这样的网站很多只提供网上试读,但有些人只要提供试读的文章就能全篇下载,这个是怎么弄的?  香港服务器租用每月最低只需15元?  深入理解Android中的xmlns:tools属性  C#如何在一个XML文件中查找并替换文本内容  建站之星ASP如何实现CMS高效搭建与安全管理?  网站制作的软件有哪些,制作微信公众号除了秀米还有哪些比较好用的平台?  如何构建满足综合性能需求的优质建站方案?  洛阳网站制作公司有哪些,洛阳的招聘网站都有哪些?  如何用5美元大硬盘VPS安全高效搭建个人网站?  建站主机如何选?高性价比方案全解析  无锡营销型网站制作公司,无锡网选车牌流程?  中山网站制作网页,中山新生登记系统登记流程?  深圳企业网站制作设计,在深圳如何网上全流程注册公司?  简易网站制作视频教程,使用记事本编写一个简单的网页html文件?  公众号网站制作网页,微信公众号怎么制作?  电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?  Swift开发中switch语句值绑定模式  如何选择建站程序?包含哪些必备功能与类型?  制作网站软件推荐手机版,如何制作属于自己的手机网站app应用? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。