Memcached 기본 사용법 > 메모

본문 바로가기
사이트 내 전체검색

메모

php Memcached 기본 사용법

페이지 정보

profile_image
작성자 최고관리자
댓글 0건 조회 45회 작성일 25-09-26 13:24

본문

Memcached 기본 사용법

다음은 Memcached의 기본적인 사용 예시입니다.


<?php

// 1. Memcached 인스턴스 생성
$memcached = new Memcached();

// 2. Memcached 서버 연결
$memcached->addServer('localhost', 11211) or die("Memcached 서버에 연결할 수 없습니다.");

// 3. 데이터 저장 (set)
$key = 'user_data';
$data = [
    'name' => '홍길동',
    'email' => 'hong@example.com'
];
$expiration = 3600; // 1시간 동안 유효
$memcached->set($key, $data, $expiration);
echo "데이터를 성공적으로 저장했습니다.
"; // 4. 데이터 조회 (get) $retrieved_data = $memcached->get($key); if ($retrieved_data) { echo "Memcached에서 데이터를 가져왔습니다:
"; print_r($retrieved_data); echo "
"; } else { echo "Memcached에서 데이터를 찾을 수 없습니다.
"; } // 5. 데이터 삭제 (delete) $memcached->delete($key); echo "데이터를 성공적으로 삭제했습니다.
"; // 6. 삭제 후 데이터 조회 $retrieved_data_after_deletion = $memcached->get($key); if ($retrieved_data_after_deletion) { echo "삭제 후 데이터가 발견되었습니다.
"; } else { echo "데이터가 성공적으로 삭제되었습니다.
"; } // 7. 모든 캐시 항목 무효화 (flush) $memcached->flush(); echo "모든 캐시 항목을 무효화했습니다.
"; ?>

주요 Memcached 클래스 메서드

  • __construct(?string $persistent_id = null): Memcached 클래스의 인스턴스를 생성합니다. $persistent_id를 사용하면 요청 간에 영구 연결을 유지할 수 있습니다.
  • addServer(string $host, int $port, int $weight = 0): Memcached 서버를 연결 풀에 추가합니다.
  • set(string $key, mixed $value, int $expiration = 0): 데이터를 지정된 키로 Memcached에 저장합니다. expiration은 초 단위 만료 시간입니다.
  • get(string $key): 지정된 키에 해당하는 데이터를 검색합니다.
  • delete(string $key): 지정된 키에 해당하는 항목을 Memcached에서 삭제합니다.
  • increment(string $key, int $offset = 1): 지정된 키의 숫자 값을 증가시킵니다.
  • decrement(string $key, int $offset = 1): 지정된 키의 숫자 값을 감소시킵니다.
  • flush(): 캐시에 있는 모든 항목을 무효화합니다.

캐싱 전략 예시 (데이터베이스 쿼리 결과 캐싱)

데이터베이스 부하를 줄이기 위해 Memcached를 활용하는 일반적인 예시입니다.


<?php

$memcached = new Memcached();
$memcached->addServer('localhost', 11211);

$cacheKey = 'all_users'; // 캐시 키

// 1. Memcached에서 데이터 조회
$users = $memcached->get($cacheKey);

if ($users) {
    // 캐시에서 데이터 발견
    echo "캐시에서 사용자 데이터를 가져왔습니다.
"; print_r($users); } else { // 캐시에 데이터가 없으므로 데이터베이스에서 조회 echo "데이터베이스에서 사용자 데이터를 가져옵니다.
"; // 실제로는 데이터베이스에 연결하고 쿼리를 실행하는 코드 $db_users = [ ['id' => 1, 'name' => '김철수'], ['id' => 2, 'name' => '이영희'] ]; // 2. 데이터베이스에서 가져온 데이터를 Memcached에 저장 $memcached->set($cacheKey, $db_users, 60); // 60초 동안 캐시 $users = $db_users; print_r($users); } ?>

댓글목록

등록된 댓글이 없습니다.

회원로그인

회원가입

사이트 정보

회사명 : 티로그 / 대표 : 김태규
주소 :부산광역시 수영구 광안로7번길 22 창성빌딩 3층
사업자 등록번호 : 617-86-10993
전화 : 051-325-6700 팩스 : 051-325-5665
통신판매업신고번호 : 제 2013-부산수영-0167 호
개인정보관리책임자 : 손승목

  • 게시물이 없습니다.

접속자집계

오늘
372
어제
1,016
최대
4,387
전체
439,094
Copyright © 소유하신 도메인. All rights reserved.