?1、问:什么是消息队列? 答:是一个消息的链表,是一个异步处理的数据处理引擎。2、问:有什么好处? 答:不仅能够提高系统的负荷,还能够改善因网络阻塞导致的数据缺失。3、问:用途有哪些? 答:邮件...

?
1、问:什么是消息队列?
答:是一个消息的链表,是一个异步处理的数据处理引擎。
2、问:有什么好处?
答:不仅能够提高系统的负荷,还能够改善因网络阻塞导致的数据缺失。
3、问:用途有哪些?
答:邮件发送、手机短信发送,数据表单提交、图片生成、视频转换、日志储存等。
4、问:有哪些软件?
答:ZeroMQ、Posix、SquirrelMQ、Redis、QDBM、Tokyo Tyrant、HTTPSQS等(linux平台下)。
5、问:怎么实现?
答:顾名思义,先入队,后出队;先把数据丢到消息队列(入队),后根据相应的key来获取数据(出队)。
6、问:Redis可以做消息队列?
答:首先,redis设计用来做缓存的,但是由于它自身的某种特性使得它可以用来做消息队列,它有几个阻塞式的API可以使用,正是这些阻塞式的API让其有能力做消息队列;另外,做消息队列的其他特性例如FIFO(先入先出)也很容易实现,只需要一个list对象从头取数据,从尾部塞数据即可;redis能做消息队列还得益于其list对象blpop brpop接口以及Pub/Sub(发布/订阅)的某些接口,它们都是阻塞版的,所以可以用来做消息队列。
7、问:怎么做(基于ThinkPHP)?
答:7.1 安装redis,过程(略);
7.2 安装php-redis扩展,过程(略);
7.3 贴代码
图1 入队
图2 入队结果
图3 出队
图4 出队结果
图5 完整代码
8、小结:redis的lPush命令将一个或多个值插入到列表头部与rPush与rPush相反;rPop命令用于溢出并返回列表的最后一个元素与lPop相反。
本文标题为:Redis实现简单的消息队列


基础教程推荐
- SQL Server如何设置用户只能访问特定数据库和访问特定表或视图 2023-07-29
- redis乐观锁与悲观锁的实战 2023-07-13
- redis 数据库 2023-09-13
- Python安装第三方库的方法(pip/conda、easy_install、setup.py) 2023-07-28
- oracle19c卸载教程的超详细教程 2023-07-23
- Windows10系统中Oracle完全卸载正确步骤 2023-07-24
- Mariadb数据库主从复制同步配置过程实例 2023-07-25
- Python常见库matplotlib学习笔记之画图中各个模块的含义及修改方法 2023-07-27
- oracle数据库排序后如何获取第一条数据 2023-07-24
- Java程序员从笨鸟到菜鸟(五十三) 分布式之 Redis 2023-09-11