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를 사용하기 위한 코드를 작성합니다.
<?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();
php cache.php start
4. 테스트 코드
브라우저나 기타 도구를 사용하여 Memcached의 데이터 캐싱 기능을 테스트하기 위해 HTTP 요청을 보낼 수 있습니다. 예를 들어 http://localhost:8000/foo에 액세스하면 데이터베이스에서 데이터를 가져와 캐시에 저장합니다. http://localhost:8000/foo에 다시 액세스하면 캐시에서 직접 데이터를 가져옵니다.
위의 단계를 통해 Workerman에서 데이터 캐싱을 위해 Memcached를 성공적으로 사용했습니다. 코드의 예제는 참조용일 뿐이며 실제로 사용될 때 특정 비즈니스 로직에 따라 조정되어야 합니다. 동시에, 승인되지 않은 방문자의 악의적인 조작을 방지하기 위해 Memcached 서비스의 보안을 보호하는 데 주의를 기울여야 합니다.
위 내용은 Workerman에서 데이터 캐싱을 위해 Memcached를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!