0Pricing
PHP Academy · 강의

세션 및 객체 캐싱을 위한 Memcached

Memcached를 PHP 객체를 위한 분산 인메모리 저장소로 사용합니다.

세션 및 객체 캐싱을 위한 Memcached은(는) CoddyKit의 무료 PHP Academy 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 PHP Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. PHP Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

Memcached란 무엇인가요?

Memcached는 고성능 분산 메모리 내 키-값 저장소입니다. PHP 애플리케이션에서 데이터베이스 쿼리 결과와 세션 데이터를 캐시하는 데 널리 사용됩니다.

설치

Memcached 서버와 PHP 확장을 설치합니다.

# Ubuntu/Debian:
$ apt install memcached php-memcached
$ service memcached start

# Verify:
$ php -m | grep memcached

Memcached에 연결하기

Memcached 인스턴스를 생성하고 하나 이상의 서버를 추가합니다.

<?php
$mc = new Memcached();
$mc->addServer("127.0.0.1", 11211);

// Multiple servers (distributed caching):
$mc->addServers([
    ["192.168.1.10", 11211],
    ["192.168.1.11", 11211],
]);

기본 캐시 작업

캐시 항목을 설정하고 가져오고 삭제하고 교체합니다.

<?php
// Set with TTL:
$mc->set("product:1", $productData, 600); // 10 min

// Get:
$product = $mc->get("product:1");
if ($mc->getResultCode() === Memcached::RES_NOTFOUND) {
    $product = fetchFromDB(1);
    $mc->set("product:1", $product, 600);
}

// Delete:
$mc->delete("product:1");

Memcached를 사용한 세션 저장

빠르고 여러 웹 서버에서 공유할 수 있는 접근을 위해 PHP 세션을 Memcached에 저장합니다.

# php.ini:
session.save_handler = memcached
session.save_path    = "127.0.0.1:11211"

Laravel Memcached 통합

Memcached를 Laravel의 캐시 드라이버로 설정하고 사용합니다.

# .env
CACHE_DRIVER=memcached
MEMCACHED_HOST=127.0.0.1

// Usage is identical to Redis via Cache facade:
Cache::put("key", $value, 300);
$value = Cache::get("key");

Memcached와 Redis 비교

Memcached: 더 단순하고 다중 스레드를 지원하며 순수한 메모리 내 저장소입니다(영속성 없음). Redis: 더 다양한 데이터 형식, 선택적 영속성(AOF/RDB), 발행/구독, 클러스터를 제공합니다. 순수한 캐싱 용도에서는 둘의 성능이 비슷합니다. 일반적으로 새 프로젝트에는 Redis가 더 선호됩니다.

분산 캐싱

Memcached는 일관된 해싱을 사용하여 여러 서버에 키를 기본적으로 분산합니다. 트래픽이 증가하면 수평으로 확장할 수 있습니다.

원자적 CAS(비교 후 교체)

Memcached는 마지막으로 값을 읽은 이후 다른 클라이언트가 값을 변경하지 않은 경우에만 값을 안전하게 업데이트하도록 CAS 작업을 지원합니다.

<?php
$mc->get("counter", null, $cas);
$mc->cas($cas, "counter", $newValue, 60);

TTL 제한

Memcached의 TTL은 최대 30일로 제한됩니다. 약 1MB보다 큰 값은 거부됩니다. 캐시 값을 작게 유지하고 효율적으로 직렬화합니다.

모니터링

memcached-tool 127.0.0.1:11211 stats를 사용하여 적중률, 메모리 사용량, 축출 횟수를 확인합니다. 적중률이 낮거나 축출 횟수가 높다면 캐시가 너무 작은 것입니다.

요약

Memcached는 단순한 분산 객체 캐싱과 세션 캐싱에 뛰어납니다. Laravel에서는 CACHE_DRIVER=memcached를 설정합니다. 운영 환경에서 더 다양한 기능이 필요하다면 Redis를 선호합니다.

빠른 확인

Memcached와 Redis의 주요 차이점 한 가지는 무엇인가요?

자주 묻는 질문

“세션 및 객체 캐싱을 위한 Memcached” 강의는 무료인가요?

네 — “세션 및 객체 캐싱을 위한 Memcached” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 PHP Academy 강의 전체를 잠금 해제할 수 있습니다. PHP Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“세션 및 객체 캐싱을 위한 Memcached”에서 뭘 배우나요?

Memcached를 PHP 객체를 위한 분산 인메모리 저장소로 사용합니다. 브라우저에서 직접 실행하는 실습 코드로 PHP Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

PHP Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 PHP Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.

“세션 및 객체 캐싱을 위한 Memcached” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 PHP Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 PHP Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. PHP에서 캐싱이 중요한 이유
  2. PHP 캐시 백엔드로서의 Redis
  3. 세션 및 객체 캐싱을 위한 Memcached
  4. 캐시 무효화 패턴
← PHP Academy(으)로 돌아가기