介绍
怎么在PHP中使用复述,消息队列实现发布微博?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
具体如下:
phpRedisAdmin: github地址,图形化管理界面
git clone [url] https://github.com/ErikDubbelboer/phpRedisAdmin.git [/url] cd phpRedisAdmin git clone [url] https://github.com/nrk/predis.git [/url],供应商
首先安装上述的复述,图形化管理界面,能够方便的管理复述,数据
为了降低Mysql的并发数,先把用户的微博存在复述中
假设用户发布的时候需要三个字段,uid(用户ID号),用户名(用户姓名)、内容(& # 39;用户的评论& # 39;)
比如用户传递以下信息
//此处需要安装phpredis $ redis =, new 复述(); 复述→美元连接(& # 39;127.0.0.1 # 39;,,6379);//,连接复述 $ web_info=,阵列( & # 39;uid # 39;,=祝辞,& # 39;123456 & # 39; & # 39;用户名# 39;,=祝辞,& # 39;123 & # 39; & # 39;内容# 39;,=祝辞& # 39;123 & # 39; );//将数组转成json来存储 $ list =, json_encode ($ web_info);//lpush向关键对应的头部添加一个字符串元素 复述→美元lpush (& # 39; weibo_lists& # 39;,美元列表); 复述→美元close ();///var_dump (json_encode (web_info美元)); var_dump($列表); 祝辞;
此处可以看到我们的复述,已经有数据了
//创建一个PDO数据库链接,data.php class qq { ,public function  post ($ uid=& # 39; & # 39;, $ username=& # 39; & # 39;, $内容=& # 39;& # 39;){ 尝试才能{ ,,dsn 美元;=,“mysql:主机;dbname=localhost, dbname=test"; ,,db 美元;=,new PDO (dsn美元,& # 39;根# 39;,& # 39;根# 39;); ,,$ db→exec (“SET NAMES UTF8"); ,,sql 美元;=癷nsert into 测试(uid、用户名、内容)值(& # 39;uid # 39;美元,& # 39;用户名# 39;美元,& # 39;内容# 39;美元)“; ,,$ db→exec ($ sql); }才能赶上(PDOException $ e) { ,,$ e→getMessage (); ,,} ,} }
//处理复述,数据库的数据,并把数据放到MYSQL数据库中 include “data.php"; $ qq =, new qq (); $ redis =, new 复述(); 复述→美元连接(& # 39;127.0.0.1 # 39;,,6379);//返回的列表的大小。如果列表不存在或为空,该命令返回0。如果该键不是列表,该命令返回错误的 如果(redis 美元;→,lsize (& # 39; weibo_lists& # 39;)) { ,//从列表头部删除并返回删除数据 美元,美元info =,复述,→rPop (& # 39; weibo_lists& # 39;); ,info 美元;=,json_decode ($ info); 美元,美元qq→post(信息→uid,美元信息→用户名、信息→美元内容); } 复述→美元close (); var_dump ($ info); 祝辞;