>백엔드 개발 >PHP 튜토리얼 >PHP 개발에서 Memcached를 사용하여 데이터를 캐시하는 방법

PHP 개발에서 Memcached를 사용하여 데이터를 캐시하는 방법

王林
王林원래의
2023-06-27 09:48:58740검색

인터넷 애플리케이션이 지속적으로 개발됨에 따라 데이터 저장 및 액세스는 애플리케이션 개발에서 매우 중요한 링크가 되었습니다. 애플리케이션 성능, 응답 속도 및 사용자 경험을 개선하기 위해 애플리케이션에 데이터를 캐시해야 하는 경우가 많습니다. 이 기사에서는 Memcached를 사용하여 PHP 개발 시 데이터를 캐시하여 애플리케이션 성능을 향상시키는 방법을 소개합니다.

Memcached는 고성능 분산 메모리 캐싱 시스템입니다. 데이터를 메모리에 캐시하므로 빠르게 읽고 쓸 수 있습니다. PHP 개발에서는 종종 Memcached를 사용하여 계산 결과, 데이터베이스 쿼리 결과 및 기타 데이터를 캐시하여 애플리케이션 응답 속도와 성능을 향상시킵니다.

Memcached 설치 및 구성

Memcached를 사용하여 데이터를 캐시하기 전에 먼저 Memcached를 설치하고 구성해야 합니다. Linux 시스템에서는 다음 명령을 사용하여 Memcached를 설치할 수 있습니다.

sudo apt-get update
sudo apt-get install memcached

설치가 완료된 후 Memcached의 PHP 확장도 설치해야 합니다. Ubuntu 시스템에서는 다음 명령을 사용하여 Memcached PHP 확장을 설치할 수 있습니다.

sudo apt-get install php-memcached

설치가 완료된 후 php.ini 구성 파일에 다음 구성을 추가합니다.

extension=memcached.so

그런 다음 Apache 서비스 또는 PHP-FPM을 다시 시작합니다. 구성을 적용하는 서비스입니다.

Memcached를 사용한 캐시 데이터

Memcached를 사용한 데이터 캐시는 매우 간단합니다. 작동하려면 Memcached 확장이 제공하는 기능을 사용하기만 하면 됩니다. 다음은 Memcached를 사용하여 데이터를 캐시하는 예입니다.

<?php

// 连接到 Memcached 服务器
$memcached = new Memcached();
$memcached->addServer('localhost', 11211);

// 将数据缓存到 Memcached 中
$memcached->set('key', 'value', 10); // 缓存 10 秒

// 从 Memcached 中读取数据
$value = $memcached->get('key');
if ($value === false) {
    // 缓存不存在,从数据库中查询数据
    $value = 'data from database';
    
    // 将从数据库中查询的数据缓存到 Memcached 中
    $memcached->set('key', $value, 10);
}

echo $value;

위 예에서는 먼저 Memcached 인스턴스를 생성하고 Memcached 서버를 추가했습니다. 그런 다음 Memcached에 키-값 형식으로 데이터를 저장하고 데이터 만료 시간을 10초로 설정합니다. 이 데이터에 액세스해야 할 경우 먼저 Memcached에서 데이터를 쿼리합니다. 데이터가 존재하지 않으면 데이터베이스에서 데이터를 쿼리하고 쿼리 결과를 Memcached에 캐시합니다.

Memcached의 고급 사용

실제 개발에서는 Memcached의 일부 고급 기능을 사용하여 애플리케이션 성능을 최적화할 수도 있습니다. 다음은 몇 가지 일반적인 고급 사용법입니다.

  • 여러 서버 설정: 데이터를 여러 Memcached 서버에 분산하여 애플리케이션 내결함성과 성능을 향상시킬 수 있습니다.
  • 사용자 정의 직렬화 및 역직렬화: 데이터 직렬화 및 역직렬화 방법을 사용자 정의하여 다양한 데이터 유형 및 구조에 적응할 수 있습니다.
  • 일괄 작업: 여러 데이터 조각을 일괄적으로 읽고 쓸 수 있어 데이터 읽기 및 쓰기 성능을 향상시킬 수 있습니다.
  • 자동 장애 조치: 서버가 다운되면 자동으로 다른 서버로 전환하도록 자동 장애 조치 전략을 설정할 수 있습니다.
<?php

// 连接到多个 Memcached 服务器
$memcached = new Memcached();
$memcached->addServers([
    ['host1', 11211],
    ['host2', 11211]
]);

// 自定义序列化和反序列化方法
$memcached->setOption(Memcached::OPT_SERIALIZER, Memcached::SERIALIZER_IGBINARY);
$memcached->setOption(Memcached::OPT_SERIALIZER, Memcached::SERIALIZER_JSON);

// 批量操作
$values = [
    'key1' => 'value1',
    'key2' => 'value2',
    'key3' => 'value3'
];
$memcached->setMulti($values);

// 自动失败转移
$memcached->setOption(Memcached::OPT_CONNECT_TIMEOUT, 100);
$memcached->setOption(Memcached::OPT_DISTRIBUTION, Memcached::DISTRIBUTION_CONSISTENT);
$memcached->setOption(Memcached::OPT_SERVER_FAILURE_LIMIT, 5);
$memcached->setOption(Memcached::OPT_RETRY_TIMEOUT, 2);

요약

Memcached를 사용하여 데이터를 캐시하면 애플리케이션의 성능과 응답 속도를 크게 향상시킬 수 있습니다. PHP 개발에서는 Memcached PHP 확장을 사용하여 데이터 캐싱을 구현할 수 있습니다. Memcached를 사용하는 과정에서 일부 고급 기능을 사용하여 애플리케이션 성능을 더욱 최적화할 수도 있습니다.

위 내용은 PHP 개발에서 Memcached를 사용하여 데이터를 캐시하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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