首页 » 网站推广 » phpredis短信频率技巧_Redis实现订阅宣告与批量发送短信

phpredis短信频率技巧_Redis实现订阅宣告与批量发送短信

访客 2024-11-17 0

扫一扫用手机浏览

文章目录 [+]

Redis 发布订阅(pub/sub)是一种通信模式:发送者(pub)发送,订阅者(sub)吸收。
直接点,你可以理解为我关注了你,你发布了信息,文章等,我就可以立马收的到。

2 发布订阅的场景在哪里

phpredis短信频率技巧_Redis实现订阅宣告与批量发送短信

比如以下几个场景:

phpredis短信频率技巧_Redis实现订阅宣告与批量发送短信
(图片来自网络侵删)

2.1 范例的网页上的可以做到实时关照

2.2 订单下单往后 通过redis订阅实时关照库存改变

2.3 接口须要做一些比如发送邮件 写日志等功能的时候可以利用到redis订阅了 这样会加快接口返回韶光

3 php如何实现 实时发布订阅

知道了什么是订阅,发布的场景,下面来看看如何用php与redis实现发布订阅

3.1 cli.php,这个为订阅真个代码 紧张把稳的是这个代码放在cli下实行 php

<?phpwhile (true){ echo time(); ini_set('default_socket_timeout', -1); //不超时 $redis = new Redis(); $redis->connect('127.0.01', 6379, 3600); $redis->auth('123456'); //设置密码 $result = $redis->subscribe(['test'],'callback'); print_r($result); sleep(0.1);}function callback($instance,$channelName,$message){ print_r($message);}

启动往后接下来我们来个发布真个代码

3.2 发布真个代码,pub.php 这个代码可以放在普通网页下实行

<?php$redis = new Redis();$redis->connect('127.0.0.1', 6379, 3600);$redis->auth('123456'); //设置密码$message = '测试一下';$ret=$redis->publish('test',$message);

到这里php redis订阅发布成功,是不是很大略,紧张用到redis的subscribe方法,publish方法,当然这些代码在实际利用过程中还是可以优化的比如cli.php,根据自己的须要去实现吧。

这里贴个laravel实现的发布订阅的例子

#获取订阅到的

创建laravel的php artisan命令在handle里实行监代码

laravel的php artisan list命令可以查看当前的任务,然后利用Linux的nohub命令在后台常驻即可

public function handle() { #订阅redis $redis = new \Redis(); $redis->pconnect(Config(\"大众host\公众), Config(\公众port\"大众)); $redis->auth(Config(\"大众password\公众)); //订阅订单id ORDERID $redis->subscribe(['ORDERID'], function($redis, $channel,$message) { if ($channel == 'ORDERID'){ #这里$message为10002 if ($message){ //存储到自己的redis库 这里配置了多连接 $redis2 = Redis::connection('driver_outset_time'); $redis2->set('ORDERID_'.$message,time());#value为韶光time() $redis2->EXPIRE('ORDERID_'.$message,time(), 246060);#设置key过期韶光为24小时 $this->xxxxx($message,xxx);#调用其他方法实行其他业务逻辑 } } }); }

接下来看看如何实现批量发送短信

1.首先将须要发送信息的手机号存入redis缓存

$redis = new \redis();$conn = $redis->connect('localhost', 6379);$auth = $redis->auth(''); //redis设置了密码,须要认证$list = Testuser::find()->asarray()->all();for ($i=0; $i < count($list); $i++) { $redis->lpush('list',$list[$i]['email']);}

将所需发送的手机号存入到redis缓存中

2.调用短信接口发送短信

$redis = new \redis();$conn = $redis->connect('localhost', 6379);$auth = $redis->auth('');$lenth = $redis->llen('list');for ($i=0; $i < $lenth ; $i++) { $phone = $redis->brpop('list',1,60);//从结尾处弹出一个值,超时时间为60s $phonenumber = $phone[1]; $sendmsg = send($phonenumber); if($sendmsg){ //处理发送成功的逻辑 }else{ //处理发送失落败的逻辑 } usleep(500000);//微秒,调用第三方接口,须要把稳频率,}

这里结合php的cli模式,通过函数exec触发命令。
直接后台实行。

举两个例子,怎么样写好代码

最经典的算法,献给正在口试道路上的你

如果你现在在口试PHP的道路上,看看口试根本题吧

标签:

相关文章

语言栏,现代科技与人类语言的完美融合

随着科技的飞速发展,人类的生活越来越便捷。其中,电脑语言栏作为现代科技与人类语言的完美融合,为我们带来了极大的便利。本文将从语言栏...

网站推广 2024-12-29 阅读0 评论0

语言框架,沟通的艺术与方法

在人际交往中,沟通是不可或缺的一环。而语言框架作为一种沟通的艺术与技巧,对于提高沟通效果、促进人际关系具有重要作用。本文将从语言框...

网站推广 2024-12-29 阅读0 评论0

语言暴力,心灵毒瘤的蔓延与反思

语言是人与人沟通的桥梁,在现实生活中,却有一部分人将语言当作伤害他人的利器,用恶毒的语言对他人进行欺负。这种现象,我们称之为“语言...

网站推广 2024-12-29 阅读0 评论0

语言教程软件,助力英语学习的新时代利器

随着科技的飞速发展,人工智能逐渐成为教育领域的有力助手。在英语学习方面,语言教程软件应运而生,为广大学子提供了便捷、高效的学习途径...

网站推广 2024-12-29 阅读0 评论0