데이터 베이스 Redis Redis 영구 연결을 구현하기 위해 PHP는 Swoole/Pool 프로세스 풀을 어떻게 활성화합니까?

Redis 영구 연결을 구현하기 위해 PHP는 Swoole/Pool 프로세스 풀을 어떻게 활성화합니까?

May 27, 2023 pm 05:55 PM
php redis swoole

php를 사용하면 Swoole|Pool 프로세스 풀에서 Redis 영구 연결을 구현할 수 있습니다.

이 모듈은 SwooleServer의 Manager 프로세스 관리를 기반으로 프로세스 풀을 구현합니다. 다중 작업 프로세스를 구현하는 Process에 비해 ProcessPool은 더 간단하고 캡슐화 수준이 높으며, 개발자는 너무 많은 코드를 작성하지 않고도 프로세스 관리 기능을 구현할 수 있으며 순수한 코루틴 스타일을 활용할 수 있습니다. 다중 코어.

Swoole 프로세스 풀은 Redis 데이터 읽기를 구현합니다.

다음 경우 Redis 프로세스 풀은 WorkerStart를 통해 시작되고 Redis 목록 데이터는 WorkerStop이 모든 연결을 끊을 때 지속적으로 읽혀집니다.

1단계: 코드 인코딩

파일: d10.php

<?php

use Swoole\Process;
use Swoole\Coroutine;

// 指定5个工作进程
$pool = new Process\Pool(5);
// 设置启用协程
$pool->set([&#39;enable_coroutine&#39; => true]);

/**
* onWorkerStart 子进程启动
* @param \Swoole\Process\Pool $pool Pool对象
* @param int $workerId   WorkerId当前工作进程的编号,底层会对子进程进行标号
**/
$pool->on("WorkerStart", function (Process\Pool $pool, $workerId) {
// 输出当前工作进程
   echo "Worker #{$workerId} is started\n";

   // 实例化化连接redis
   $redis = new Redis();
   $redis->pconnect(&#39;127.0.0.1&#39;, 6379);
   // 指定redis键
   $key = "key1";

   // 循环读取列表数据
   while (true) {
    // 弹出列表最后一个元素
       $msgs = $redis->brpop($key, 2);
       // 元素值为空则跳过
       if ( $msgs == null) {
           continue;
       }
       // 打印获取的值
       var_dump($msgs);
       echo "Processed by Worker#{$workerId}\n";
   }
});

// 子进程结束
$pool->on("WorkerStop", function ($pool, $workerId) {
   echo "Worker#{$workerId} is stopped\n";
});

// 启动工作进程
$pool->start();
로그인 후 복사

2단계: Redis 서비스를 시작하고 클라이언트를 통해 목록 데이터 쓰기

이 경우 Redis 확장을 설치하려면 PHP가 필요합니다

# 通过redis客户端连接
./redis-cli

127.0.0.1:6379> lpush key1 &#39;world&#39;
로그인 후 복사

코드 복사

세 번째 단계: d10.php 실행

php d10.php
로그인 후 복사

4단계: 프로세스 확인

ps aux | grep php
root        938  0.0  1.2 129164 12412 ?        Ss   Apr21   0:00 php-fpm: master process (/usr/local/php-8.0.1/etc/php-fpm.conf)
www         951  0.0  0.6 129164  6636 ?        S    Apr21   0:00 php-fpm: pool www
www         952  0.0  0.6 129164  6640 ?        S    Apr21   0:00 php-fpm: pool www
root      12327  0.0  1.2 126992 12800 pts/2    S+   00:02   0:00 php d10.php
root      12328  0.0  0.7 131096  7444 pts/2    S+   00:02   0:00 php d10.php
root      12329  0.0  0.7 131096  7448 pts/2    S+   00:02   0:00 php d10.php
root      12330  0.0  0.7 131096  7448 pts/2    S+   00:02   0:00 php d10.php
root      12331  0.0  0.7 131096  7448 pts/2    S+   00:02   0:00 php d10.php
root      12332  0.0  0.7 131096  7448 pts/2    S+   00:02   0:00 php d10.php
root      12355  0.0  0.0 112812   976 pts/3    R+   00:09   0:00 grep --color=auto php
로그인 후 복사

5단계: 결과 출력

php d10.php

Worker #1 is started
Worker #2 is started
Worker #3 is started
Worker #4 is started
Worker #0 is started
array(2) {
 [0]=>
 string(4) "key1"
 [1]=>
 string(5) "world"
}
Processed by Worker#1
로그인 후 복사

d10.php 파일은 실행 후 항상 차단되며 Redis 목록 데이터를 계속 읽습니다. Redis 목록은 즉시 Output이 팝업되어 화면에 출력됩니다.

위 내용은 Redis 영구 연결을 구현하기 위해 PHP는 Swoole/Pool 프로세스 풀을 어떻게 활성화합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

<gum> : Bubble Gum Simulator Infinity- 로얄 키를 얻고 사용하는 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
Nordhold : Fusion System, 설명
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora : 마녀 트리의 속삭임 - Grappling Hook 잠금 해제 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

session_start () 함수의 중요성은 무엇입니까? session_start () 함수의 중요성은 무엇입니까? May 03, 2025 am 12:18 AM

session_start () iscrucialinphpformanagingUsersessions.1) itiniteSanewsessionifnoneexists, 2) ResumesAnxistessions, and3) setSasessionCookieForContInuityAcrosrequests, enablingplicationsirecationSerauthenticationAndpersonalizestContent.

데이터 처리 및 계산에 MySQL 기능을 사용하는 방법 데이터 처리 및 계산에 MySQL 기능을 사용하는 방법 Apr 29, 2025 pm 04:21 PM

MySQL 기능은 데이터 처리 및 계산에 사용될 수 있습니다. 1. 기본 사용에는 문자열 처리, 날짜 계산 및 수학 연산이 포함됩니다. 2. 고급 사용에는 복잡한 작업을 구현하기 위해 여러 기능을 결합하는 것이 포함됩니다. 3. 성능 최적화를 위해서는 WHERE 절에서 기능 사용 및 GroupBy 및 임시 테이블 사용을 피해야합니다.

권장 Laravel의 최고의 확장 팩 : 2024 필수 도구 권장 Laravel의 최고의 확장 팩 : 2024 필수 도구 Apr 30, 2025 pm 02:18 PM

2024 년의 필수 Laravel 확장 패키지는 다음과 같습니다. 1. Laraveldebugbar, 코드를 모니터링하고 디버그하는 데 사용됩니다. 2. 자세한 응용 프로그램 모니터링을 제공하는 Laraveltelescope; 3. Laravelhorizon, Redis 대기열 작업 관리. 이러한 확장 팩은 개발 효율성 및 응용 프로그램 성능을 향상시킬 수 있습니다.

작곡가 : PHP 개발자의 패키지 관리자 작곡가 : PHP 개발자의 패키지 관리자 May 02, 2025 am 12:23 AM

Composer는 PHP의 종속성 관리 도구이며 Composer.json 파일을 통해 프로젝트 종속성을 관리합니다. 1) 종속성 정보를 얻기 위해 Composer.json을 구문 분석합니다. 2) 종속성 트리를 형성하기위한 종속성; 3) Packagist에서 공급 업체 디렉토리로 종속성을 다운로드하여 설치합니다. 4) Composer.Lock 파일을 생성하여 팀 일관성 및 프로젝트 유지 관리 가능성을 보장하기 위해 종속성 버전을 잠그십시오.

MySQL의 문자 세트 및 Collation 규칙을 구성하는 방법 MySQL의 문자 세트 및 Collation 규칙을 구성하는 방법 Apr 29, 2025 pm 04:06 PM

MySQL에서 문자 세트 및 콜라주를 구성하는 방법은 다음과 같습니다. 1. 서버 수준에서 문자 세트 및 콜라주 설정 : setNames'Utf8 '; setcharactersetutf8; setCollation_connection = 'utf8_general_ci'; 2. 특정 문자 세트 및 콜라주를 사용하는 데이터베이스를 만듭니다. createAbaseexample_DBCHARACTERSETUTF8COLLATEUTF8_GENERAL_CI; 3. 테이블을 만들 때 문자 세트 및 콜라주를 지정하십시오 : CreateTableAmplipt_table (idint

MySQL에서 데이터베이스 이름을 바꾸는 방법 MySQL에서 데이터베이스 이름을 바꾸는 방법 Apr 29, 2025 pm 04:00 PM

MySQL에서 데이터베이스를 바꾸려면 간접적 인 방법이 필요합니다. 단계는 다음과 같습니다. 1. 새 데이터베이스를 만듭니다. 2. mysqldump를 사용하여 이전 데이터베이스를 내보내십시오. 3. 데이터를 새 데이터베이스로 가져옵니다. 4. 이전 데이터베이스를 삭제합니다.

Laravel 환경 구성 및 기본 구성 (Windows/Mac/Linux) Laravel 환경 구성 및 기본 구성 (Windows/Mac/Linux) Apr 30, 2025 pm 02:27 PM

다른 운영 체제에서 Laravel 환경을 구축하는 단계는 다음과 같습니다. 1. windows : XAMPP를 사용하여 PHP 및 Composer를 설치하고 환경 변수를 구성하고 Laravel을 설치합니다. 2.MAC : Homebrew를 사용하여 PHP 및 작곡가를 설치하고 Laravel을 설치하십시오. 3.Linux : Ubuntu를 사용하여 시스템을 업데이트하고 PHP 및 Composer를 설치하고 Laravel을 설치하십시오. 각 시스템의 특정 명령과 경로는 다르지만 핵심 단계는 Laravel 개발 환경의 원활한 구성을 보장하기 위해 일관됩니다.

작곡가의 목적 : PHP의 프로젝트 종속성 관리 작곡가의 목적 : PHP의 프로젝트 종속성 관리 Apr 30, 2025 am 12:01 AM

작곡가는 PHP 프로젝트의 종속성을 효과적으로 관리하고 버전 충돌 및 수동 라이브러리 관리의 번거 로움을 피할 수 있으므로 작곡가가 필요합니다. Composer는 Composer.json을 통해 종속성을 선언하고 Composer.Lock을 사용하여 버전 일관성을 보장하고 종속성 관리 프로세스를 단순화하며 프로젝트 안정성 및 개발 효율성을 향상시킵니다.

See all articles