Swoole 是一個高性能的 PHP 異步編程框架,它支持 Redis 作為消息隊列。以下是一個使用 Swoole 和 Redis 實現生產者消費者模型的簡單案例:
首先,確保你已經安裝了 Swoole 和 Redis 擴展。如果沒有,請參考官方文檔進行安裝:
<?php
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
for ($i = 0; $i < 10; $i++) {
$message = "Message_{$i}";
$redis->lPush('queue', $message);
echo "Sent: {$message}\n";
}
$redis->close();
<?php
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
while (true) {
$message = $redis->rPop('queue');
if ($message === false) {
sleep(1);
continue;
}
echo "Received: {$message}\n";
// 處理消息的邏輯
}
$redis->close();
在命令行中,分別運行生產者和消費者腳本:
php producer.php
php consumer.php
這個簡單的案例展示了如何使用 Swoole 和 Redis 實現一個基本的消息隊列。在實際應用中,你可能需要考慮更多的因素,例如錯誤處理、分布式鎖、持久化等。但是,這個案例足以讓你開始使用 Swoole 和 Redis 進行異步編程。