Debian PHP如何实现消息队列
在Debian系统上,用PHP做消息队列,可选的路子其实不少——RabbitMQ、Redis、Beanstalkd,各有各的脾气。不过,今天咱们重点聊两个最常用的方案:RabbitMQ和Redis。下面直接上干货,从安装到跑代码,一步不落。 使用RabbitMQ RabbitMQ本身是一个成熟的消息
在Debian系统上,用PHP做消息队列,可选的路子其实不少——RabbitMQ、Redis、Beanstalkd,各有各的脾气。不过,今天咱们重点聊两个最常用的方案:RabbitMQ和Redis。下面直接上干货,从安装到跑代码,一步不落。

使用RabbitMQ
RabbitMQ本身是一个成熟的消息中间件,在可靠性和路由上做得相当扎实。要在Debian上跑起来,得从安装开始说起。
先来搞定RabbitMQ的安装
打开终端,直接敲这行命令:
sudo apt update
sudo apt install rabbitmq-server
装完之后,别忘了把它启动起来,并且设置成开机自启:
sudo systemctl start rabbitmq-server
sudo systemctl enable rabbitmq-server
服务跑起来了,PHP这边还得装个客户端库,才能跟RabbitMQ握手:
sudo apt install php-amqp
写代码,发消息与收消息
装好依赖之后,就可以动手写PHP代码了。先创建一个发送消息的文件,比如 send_message.php:
channel();
$channel->queue_declare('hello', false, true, false, false);
$msg = "Hello World!";
$channel->basic_publish(new AMQPMessage($msg), '', 'hello');
echo " [x] Sent 'Hello World!'\n";
$channel->close();
$connection->close();
再建一个接收消息的文件,receive_message.php:
channel();
$channel->queue_declare('hello', false, true, false, false);
echo " [*] Waiting for messages. To exit press CTRL+C\n";
$callback = function($msg) {
echo " [x] Received ", $msg->body, "\n";
};
$channel->basic_consume('hello', '', false, true, false, false, $callback);
while ($channel->is_consuming()) {
$channel->wait();
}
$channel->close();
$connection->close();
运行测试
开两个终端,一个跑发送,一个跑接收:
php send_message.php
php receive_message.php
看到“Hello World!”被成功传递,就说明RabbitMQ这一套已经跑通了。
使用Redis
要是你的场景对轻量级和速度有要求,那Redis的发布/订阅模式是个不错的选择。它不像RabbitMQ那样功能全面,但胜在简单直接。
安装Redis服务器
同样,先安装:
sudo apt update
sudo apt install redis-server
启动并设置开机自启:
sudo systemctl start redis-server
sudo systemctl enable redis-server
PHP这边,需要安装Redis扩展:
sudo apt install php-redis
编写PHP代码
Redis的用法比RabbitMQ更直观些。发送消息的文件 send_message.php:
connect('127.0.0.1', 6379);
$redis->publish('channel', 'Hello World!');
echo "Message sent to channel\n";
接收消息的文件 receive_message.php:
connect('127.0.0.1', 6379);
$redis->subscribe(['channel'], function($redis, $message) {
echo "Received message: $message\n";
});
运行测试
同样,两个终端分别跑:
php send_message.php
php receive_message.php
消息发出去,接收端立马就能抓到。
总结一下:RabbitMQ适合需要高可靠性、复杂路由的场景,而Redis更适合快速、轻量的消息传递。根据你的实际业务需求,选一个合适的方案,跟着上面的步骤走,基本不会出岔子。
IntelliJ IDEA 是 JetBrains 推出的专业集成开发环境,重点服务于 Java、Kotlin 与 JVM 项目开发。软件集成代码补全、静态检查、重构、调试、测试、版本控制及构建工具,并可借助插件扩展语言和框架支持。
JetBrains PyCharm 是面向 Python 开发者的集成开发环境,提供智能补全、代码检查、重构、调试、测试、版本控制及虚拟环境管理功能。Mac 版兼容 Intel 与 Apple 芯片,核心功能可免费使用。
JetBrains WebStorm 是面向 JavaScript、TypeScript 和现代 Web 技术的专业集成开发环境,可智能理解项目结构,提供代码补全、重构、错误检查、运行调试、测试及 Git 工具。
JetBrains IntelliJ IDEA 是以 Java、Kotlin 和 JVM 项目为核心的专业集成开发环境,提供智能补全、代码检查、安全重构、调试、测试、版本控制及构建工具集成。统一发行版的核心功能可免费用于商业和非商业项目,
PhpStorm 是 JetBrains 面向 PHP 与现代 Web 开发打造的专业集成开发环境,提供代码补全、静态检查、重构、调试、测试、数据库、版本控制及前端语言支持。Windows 用户可直接下载安装程序,
PyCharm 是 JetBrains 推出的 Python 集成开发环境,提供智能代码补全、错误检查、重构、调试、测试、Git、终端及 Jupyter Notebook 支持。统一版安装后可体验 30 天 Pro 功能,













