현재 위치: > 최신 기사 목록> PHP는 Redis의 메시지 구독을 지속적으로 듣고 구독 활동을 처리하는 방법은 무엇입니까?

PHP는 Redis의 메시지 구독을 지속적으로 듣고 구독 활동을 처리하는 방법은 무엇입니까?

gitbox 2025-06-06

머리말

Redis (원격 사전 서버)는 풍부한 데이터 구조를 지원하는 고성능 인 메모리 데이터베이스입니다. 그 중에서 Publish/Subscribe (PUB/Sub) 메커니즘은 서비스 간의 비동기 통신에 사용될 수 있습니다. 이 기사에서는 PHP 언어를 사용하여 Redis 채널의 메시지를 지속적으로 듣고 이러한 구독 이벤트를 실시간으로 처리하는 방법을 설명합니다.

Redis Publish/Subscribe 메커니즘에 대한 간단한 설명

Redis의 게시/구독 모드를 사용하면 고객이 다른 클라이언트가 메시지를 게시 할 수있는 하나 이상의 채널을 구독 할 수 있습니다. 메시지가 게시되면 모든 클라이언트가 채널을 구독하면 메시지 내용이 즉시 수신됩니다. 이 메커니즘은 종종 메시지 방송, 실시간 알림 및 시스템 이벤트와 같은 시나리오에서 사용됩니다.

PHP를 사용하여 Redis 구독 채널을 듣는 방법

PHP에서 Redis 메시지 청취를 구현하려면 PHP-Redis 확장 기능을 설치해야합니다. 설치 방법은 다음과 같습니다.

 sudo apt-get install php-redis

이전 버전의 PHP의 경우 수동으로 설치할 수 있습니다.

1 단계 : Redis Extension을 다운로드하여 압축 해제하십시오

 wget https://pecl.php.net/get/redis-5.3.4.tgz
tar -xzf redis-5.3.4.tgz

2 단계 : 확장자를 컴파일하고 설치하십시오

 cd redis-5.3.4
phpize
./configure
make
sudo make install

다음으로 php.ini 에 확장 구성을 추가하십시오.

 extension=redis.so

3 단계 : Redis 연결을 만들고 채널을 듣습니다.

다음 코드는 Redis에 연결하고 PHP를 사용하여 채널을 구독하는 방법을 보여줍니다.

 $redis = new Redis();
$redis->pconnect('127.0.0.1', 6379);
$redis->subscribe(['CHANNEL_NAME'], function ($redis, $channel, $msg) {
    echo $channel . ": " . $msg . "\n";
});

위 코드에서 Subscribe () 메소드는 채널을 구독하는 데 사용됩니다. 메시지를 받으면 콜백 함수가 자동으로 실행되어 메시지의 실시간 처리를 실현합니다.

Redis 구독 이벤트를 처리하기위한 콜백 로직

구독 메시지를 처리하는 방식은 사용자 정의 할 수 있습니다. 간단한 메시지 처리 기능은 다음과 같습니다.

 function handleMessage($redis, $channel, $message)
{
    // 수신 된 메시지를 처리하십시오
    echo "Received $message from channel $channel\n";
}

사용자 정의 기능을 사용하여 채널을 구독하십시오.

 $redis = new Redis();
$redis->pconnect('127.0.0.1', 6379);
$redis->subscribe(['CHANNEL_NAME'], 'handleMessage');

이 코드는 콜백 함수를 정의하여 가입 메시지 컨텐츠를 처리하고 출력을 인쇄합니다. 데이터베이스 작성, 다른 서비스 트리거 등과 같은 비즈니스 로직을 기반으로 더 많은 작업을 수행 할 수도 있습니다.

요약

Redis의 게시/구독 메시지를 듣는 PHP를 통해 효율적인 이벤트 알림 및 메시지 방송 메커니즘을 달성 할 수 있습니다. 이 기사는 설치 확장에서 청취 논리 작성에 이르기까지 전체 프로세스를 소개합니다. 개발자는 실시간 메시지 처리를 달성하기 위해 자체 프로젝트에 따라 구독 콜백 기능을 유연하게 확장 할 수 있습니다.