php+redis实现消息队列
2021-06-09 22:04
标签:数据库 png adsi 无法 array 存在 失败 index.php images 参考:http://www.cnblogs.com/lisqiong/p/6039460.html 参考:http://blog.csdn.net/shaobingj126/article/details/50585035 消息队列:是在消息的传输过程中保存消息的容器。消息队列管理器在将消息从它的源中继到它的目标时充当中间人。队列的主要目的是提供路由并保证消息的传递;如果发送消息时接收者不可用,消息队列会保留消息,直到可以成功地传递它 应用场景:异步处理,应用解耦,流量削锋和消息通讯四个场景 1、异步处理 场景说明:用户注册后,需要发注册邮件和注册短信。 注解:自行考虑ajax中的异步。 2、应用解耦 一般订单系统和库存系统是一体的,但是如果一方出现问题,那么这个订单就失败了。 注解:感觉特别像行为驱动,消息队列中存储的就是每个行为 3、流量消锋(一般在秒杀或团抢活动中使用广泛) 注解:一般秒杀时订单会特别的多,但是数据库无法一次性的处理这么多,所以可以先存在消息队列中,无论我进的速度多快,出的速度都是一定的。不知道算不算属于漏斗模型的一部分 php的redis扩展:https://github.com/phpredis/phpredis 1)redis函数rpush,lpop 2).Linux的crontab 创建demo.php和index.php 建立定时任务 */1 * * * * root php /wwwroot/workplace/redis/index.php */3 * * * * root php /wwwroot/workplace/redis/demo.php php+redis实现消息队列 标签:数据库 png adsi 无法 array 存在 失败 index.php images 原文地址:http://www.cnblogs.com/dongtong/p/6525010.html
php
$redis = new Redis();
$redis->connect(‘127.0.0.1‘,6379);
$password = ‘123456‘;
$redis->auth($password);
$arr = array(‘h‘,‘e‘,‘l‘,‘l‘,‘o‘,‘w‘,‘o‘,‘r‘,‘l‘,‘d‘);
foreach($arr as $k=>$v){
$redis->rpush("mylist",$v);
}
php
$redis = new Redis();
$redis->connect(‘127.0.0.1‘,6379);
$password = ‘123456‘;
$redis->auth($password);
//list类型出队操作
$value = $redis->lpop(‘mylist‘);
if($value){
echo "出队的值".$value;
}else{
echo "出队完成";
}
?>