商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > Debian PHP如何实现消息队列

Debian PHP如何实现消息队列

  发布于2026-07-17 阅读(0)

扫一扫,手机访问

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

Debian PHP如何实现消息队列

使用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更适合快速、轻量的消息传递。根据你的实际业务需求,选一个合适的方案,跟着上面的步骤走,基本不会出岔子。

本文转载于:https://www.yisu.com/ask/3143956.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注