>  기사  >  PHP 프레임워크  >  Workerman에서 데이터 캐싱을 위해 Memcached를 사용하는 방법

Workerman에서 데이터 캐싱을 위해 Memcached를 사용하는 방법

WBOY
WBOY원래의
2023-11-07 15:43:02831검색

Workerman에서 데이터 캐싱을 위해 Memcached를 사용하는 방법

Workerman에서 데이터 캐싱을 위해 Memcached를 사용하는 방법

Memcached는 오픈 소스 분산 메모리 캐싱 시스템으로 웹 애플리케이션의 성능과 확장성을 향상시키는 데 자주 사용됩니다. Workerman은 실시간 통신 애플리케이션을 구축하는 데 사용할 수 있는 고성능 PHP 소켓 프레임워크입니다. 이 기사에서는 Workerman에서 데이터 캐싱을 위해 Memcached를 사용하는 방법을 소개하고 구체적인 코드 예제를 제공합니다.

1. Memcached 설치 및 구성

시작하기 전에 Memcached를 설치하고 구성해야 합니다. Memcached는 다음 명령을 통해 Linux 시스템에 설치할 수 있습니다.

sudo apt-get install memcached

설치가 완료된 후 구성 파일 /etc/memcached.conf를 편집하고 수신 IP 및 포트 번호를 설정하고 메모리 크기를 지정해야 합니다.

-d
-p 11211
-l 127.0.0.1
-m 128

구성 파일을 저장하고 Memcached 서비스를 다시 시작하세요.

2. Workerman 설치

다음으로 Workerman 프레임워크를 설치해야 합니다. Composer를 사용하여 다음 명령으로 설치할 수 있습니다.

composer require workerman/workerman

3. Memcached를 사용하기 위한 코드를 작성합니다.

  1. cache.php라는 파일을 생성하고 다음 코드를 작성합니다.
<?php

require_once __DIR__.'/vendor/autoload.php';

use WorkermanWorker;
use WorkermanProtocolsHttp;

$worker = new Worker('http://0.0.0.0:8000');

$worker->onMessage = function ($connection, $request) {
    // 先尝试从缓存中获取数据
    $cache = new Memcached();
    $cache->addServer('127.0.0.1', 11211);
    $data = $cache->get($request->path());

    if ($data === false) {
        // 缓存中不存在数据,则从数据库中获取数据
        $data = get_data_from_database($request->path());

        // 将数据存入缓存
        $cache->set($request->path(), $data, 86400); // 缓存有效期为24小时
    }

    // 返回数据给客户端
    Http::header('Content-Type: application/json');
    Http::header('Cache-Control: max-age=86400'); // 设置浏览器缓存时间为24小时
    $connection->send(json_encode($data));
};

function get_data_from_database($path) {
    // 从数据库中获取数据的逻辑,此处省略
    return [
        'path' => $path,
        'data' => 'some data'
    ];
}

Worker::runAll();
  1. 명령어에서 다음 명령을 실행합니다. 라인, 서비스 시작:
php cache.php start

4. 테스트 코드

브라우저나 기타 도구를 사용하여 Memcached의 데이터 캐싱 기능을 테스트하기 위해 HTTP 요청을 보낼 수 있습니다. 예를 들어 http://localhost:8000/foo에 액세스하면 데이터베이스에서 데이터를 가져와 캐시에 저장합니다. http://localhost:8000/foo에 다시 액세스하면 캐시에서 직접 데이터를 가져옵니다.

위의 단계를 통해 Workerman에서 데이터 캐싱을 위해 Memcached를 성공적으로 사용했습니다. 코드의 예제는 참조용일 뿐이며 실제로 사용될 때 특정 비즈니스 로직에 따라 조정되어야 합니다. 동시에, 승인되지 않은 방문자의 악의적인 조작을 방지하기 위해 Memcached 서비스의 보안을 보호하는 데 주의를 기울여야 합니다.

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

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