PHP扩展模块memcached长连接使用方法分析
这篇文章主要介绍了PHP扩展模块memcached长连接使用方法分析,需要的朋友可以参考下
网上广泛流传着一篇文章,讲述php的两个扩展模块memcache和memcached的区别,,其中特意强调了memcached与memcached一个很大的区别是memcached模块不支持长连接。以至于后来很多年我都认为memcached是不支持长连接的,其实不然,memcached扩展模块从很早的版本开始就已经支持长连接了。从扩展模块的源码注视中我们就能看到:
/* {{{ Memcached::__construct([string persistent_id[, callback on_new[, string connection_str]]]))
Creates a Memcached object, optionally using persistent memcache connection */
static PHP_METHOD(Memcached, __construct)
{
从php的手册身上我们可以看到memcached的扩展模块提供的构造函数提供一个参数persistent_id可选项,手册中这样介绍:
默认情况下,Memcached实例在请求结束后会被销毁。但可以在创建时通过persistent_id为每个实例指定唯一的ID, 在请求间共享实例。所有通过相同的persistent_id值创建的实例共享同一个连接。
这个参数的含义就是说如果你传递了一个命名id给到构造方法,那么就会建立长连接,通常我们使用的都是PHP-FPM模式,这样PHP-FPM进程就会和memcached服务简历一条长连接通道。我们也可以理解为persistent_id就是一个连接池名字,所有php-fpm进程都是这个连接池中的一员。
但我们需要注意的是php是解释性语言,当php第一次通过memached模块建立起长连接后,切记后续的php执行就不要再通过memcached的构造函数构建相同persistent_id命名的长连接,可以建立不同persistent_id名字的长连接,如果是相同的名字被php重复执行,一定会导致php-fpm的进程异常导致与memcached的通信越来越慢,同时根据libmemcached的版本不同还会导致php产生coredump。
那么我们如何避免单个php-fpm在建立完以persistent_id命名的长连接后不再重复建立长连接呢?其实在PHP带有评注的手册上是有讲解的,内容如下:
When using persistent connections, it is important to not re-add servers.
This is what you do not want to do:
Every time the page is loaded those servers will be appended to the list resulting in many simultaneous open connections to the same server. The addServer/addServers functions to not check for existing references to the specified servers.
A better approach is something like:
通过使用getServerList()方法来检查当前执行使用的php-fpm进程容器中是否已经存在相同名字的长连接资源,如果存在就不要重复使用addServers() 方法来新增长连接配置。

핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

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

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

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

뜨거운 주제









Memcached는 웹 애플리케이션의 성능을 크게 향상시킬 수 있는 일반적으로 사용되는 캐싱 기술입니다. PHP에서 일반적으로 사용되는 세션 처리 방법은 세션 파일을 서버의 하드 디스크에 저장하는 것입니다. 그러나 이 방법은 서버의 하드 디스크가 성능 병목 현상 중 하나가 되기 때문에 최적이 아닙니다. Memcached 캐싱 기술을 사용하면 PHP에서 세션 처리를 최적화하고 웹 애플리케이션의 성능을 향상시킬 수 있습니다. PHP 세션

PHP8.0의 캐싱 라이브러리: Memcached 인터넷의 급속한 발전으로 인해 최신 애플리케이션에는 성능을 향상하고 대용량 데이터를 처리하기 위해 효율적이고 안정적인 캐싱 기술이 필요합니다. PHP의 인기와 오픈 소스 특성으로 인해 PHP 캐싱 라이브러리는 웹 개발 커뮤니티에서 필수적인 도구가 되었습니다. Memcached는 수백만 개의 동시 연결된 캐시 요청을 처리할 수 있고 소셜 네트워크, 온라인 등 다양한 유형의 애플리케이션에서 사용할 수 있는 널리 사용되는 오픈 소스 고속 메모리 캐싱 시스템입니다.

인터넷이 발전하면서 PHP 애플리케이션은 인터넷 애플리케이션 분야에서 점점 더 보편화되었습니다. 그러나 PHP 애플리케이션의 동시 액세스가 높으면 서버의 CPU 사용량이 높아져 애플리케이션 성능에 영향을 줄 수 있습니다. PHP 애플리케이션의 성능을 최적화하기 위해서는 Memcached 캐싱 기술이 좋은 선택이 되었습니다. 이 기사에서는 Memcached 캐싱 기술을 사용하여 PHP 애플리케이션의 CPU 사용량을 최적화하는 방법을 소개합니다. Memcached 캐싱 기술 소개 Memcached는

PHP와 MySQL 간의 긴 연결과 지속적인 연결을 위한 Swoole과 Workerman의 최적화 방법에는 특정 코드 예제가 필요합니다. 웹 애플리케이션이 개발되고 사용자 규모가 증가함에 따라 데이터베이스 쿼리는 애플리케이션 성능 최적화의 초점 중 하나가 되었습니다. PHP 개발에서 일반적으로 사용되는 데이터베이스 연결 방법에는 긴 연결과 짧은 연결이 포함됩니다. 긴 연결은 데이터베이스 연결을 설정한 후 연결 상태를 유지하고 동일한 연결을 여러 번 재사용하는 것을 의미하고, 짧은 연결은 각 쿼리가 완료된 후 연결을 닫는 것을 의미합니다. PHP에서는 전통적인 My

인터넷의 급속한 발전으로 인해 대규모 MySQL 데이터베이스 백업 및 복구는 주요 기업과 웹사이트에 필요한 기술 중 하나가 되었습니다. Memcached가 널리 적용되면서 Memcached를 백업하고 복원하는 방법도 중요한 문제가 되었습니다. 웹 개발의 주요 언어 중 하나인 PHP는 MySQL 및 Memcached의 백업 및 복구를 처리하는 데 있어 고유한 장점과 기술을 가지고 있습니다. 이 기사에서는 PHP에서 MySQL을 처리하고 Memcached 백업 및 복구를 수행하는 방법을 자세히 소개합니다.

네트워크 애플리케이션의 지속적인 증가와 데이터 볼륨의 지속적인 확장으로 인해 데이터 읽기 및 쓰기 효율성은 애플리케이션 성능에 영향을 미치는 중요한 요소 중 하나가 되었습니다. 캐싱 기술을 적용하면 이 문제를 잘 해결할 수 있습니다. PHP 애플리케이션에서 Memcached는 가장 일반적으로 사용되는 캐시 서버입니다. Memcached는 일반적으로 사용되는 데이터를 메모리에 저장하고 데이터 검색 효율성을 향상시킬 수 있는 고성능 분산 메모리 개체 캐싱 시스템입니다. 이 기사에서는 캐시 관리를 위해 PHP와 Memcached를 사용하는 방법과 최적화 방법을 소개합니다.

인터넷 기술의 지속적인 발전으로 오디오 및 비디오 리소스는 인터넷상의 매우 중요한 콘텐츠 형태가 되었으며, 네트워크 개발에서 가장 널리 사용되는 언어 중 하나인 PHP는 비디오 분야에서도 지속적으로 사용되고 있습니다. 그리고 오디오 재생. 그러나 오디오 및 비디오 웹사이트의 사용자 수가 증가함에 따라 많은 웹사이트에서 문제를 발견했습니다. 높은 동시성 조건에서 PHP의 오디오 및 비디오 처리 속도가 크게 느려져 제 시간에 재생할 수 없거나 재생이 중단되는 등의 문제가 발생합니다. . 이 문제를 해결하려면 Memcached 캐싱 기술이 필요합니다.

현대 인터넷 애플리케이션의 급속한 발전으로 인해 사용자 경험은 애플리케이션의 성공에 매우 중요합니다. 애플리케이션의 고성능 및 고가용성을 보장하는 방법은 개발자가 해결해야 하는 중요한 문제 중 하나가 되었습니다. 널리 사용되는 프로그래밍 언어 중 하나인 PHP의 성능 모니터링 및 최적화도 매우 중요합니다. Memcached는 애플리케이션의 성능과 확장성을 향상시키는 데 도움이 되는 고성능 분산 메모리 개체 캐싱 시스템입니다. 이 기사에서는 PHP와 Memcached를 사용하여 성능 모니터링을 구현하는 방법을 소개합니다.
