📚 PHP 고급 - 6주차: 캐싱 (Caching) 전략 - 03 Redis/Memcached 연동

2025. 9. 14. 16:30프로그램/PHP 고급

Redis와 Memcached 소개

📚 PHP 고급 - 6주차: 캐싱 (Caching) 전략 - 03 Redis/Memcached 연동

 

#Redis 와 #Memcached 는 대표적인 #인메모리데이터베이스 이자 #캐싱 솔루션이다. 둘 다 빠른 속도를 자랑하며, 웹 애플리케이션의 성능을 향상시키는 데 널리 사용된다. #PHP 에서 이들을 활용하면 데이터베이스의 부담을 줄이고 응답 속도를 극적으로 개선할 수 있다. Redis는 단순 캐싱 외에 다양한 데이터 구조를 지원하는 반면, Memcached는 순수하게 캐싱에 초점을 맞추고 있어 더 가볍다.


PHP와 Redis 연동

PHP에서 Redis를 사용하려면 php-redis 확장(#PHP확장)을 설치해야 한다. 터미널에서 다음 명령어를 실행하여 설치할 수 있다.

Bash
 
sudo pecl install redis

설치 후 php.ini 파일에 extension=redis.so 또는 extension=redis.dll을 추가하고 웹 서버를 재시작해야 한다.


기본 사용법

Redis 확장을 설치하면 PHP에서 Redis 클래스를 사용할 수 있다.

PHP
 
<?php
// Redis 객체 생성
$redis = new Redis();
 
// Redis 서버에 연결
try {
    $redis->connect('127.0.0.1', 6379);
    echo "Redis 서버 연결 성공!";
} catch (Exception $e) {
    echo "Redis 연결 실패: " . $e->getMessage();
}
 
// 데이터 저장 및 만료 시간 설정 (1시간)
$redis->set('my_key', 'Hello, Redis!', 3600);
 
// 데이터 가져오기
$value = $redis->get('my_key');
echo "<br>my_key의 값: " . $value;
 
// 데이터 삭제
$redis->del('my_key');
?>

connect() 메서드로 서버에 연결하고, set(), get(), del()과 같은 메서드를 사용하여 데이터를 조작할 수 있다. set() 메서드의 세 번째 인자로 만료 시간(초 단위)을 설정할 수 있다.


PHP와 Memcached 연동

Memcached를 사용하려면 php-memcached 확장(#PHP확장)을 설치해야 한다.

Bash
 
sudo pecl install memcached

설치 후 php.ini 파일에 extension=memcached.so 또는 extension=memcached.dll을 추가하고 웹 서버를 재시작해야 한다.


기본 사용법

Memcached 확장을 설치하면 PHP에서 Memcached 클래스를 사용할 수 있다.

PHP
 
<?php
// Memcached 객체 생성
$memcached = new Memcached();
 
// Memcached 서버에 연결
$memcached->addServer('127.0.0.1', 11211);
 
// 데이터 저장 및 만료 시간 설정 (1시간)
$memcached->set('my_key', 'Hello, Memcached!', 3600);
 
// 데이터 가져오기
$value = $memcached->get('my_key');
if ($memcached->getResultCode() == Memcached::RES_SUCCESS) {
    echo "my_key의 값: " . $value;
} else {
    echo "캐시 데이터 없음.";
}
 
// 데이터 삭제
$memcached->delete('my_key');
?>

addServer() 메서드로 서버를 추가하고, set(), get(), delete() 메서드를 사용한다. get() 메서드 사용 후 getResultCode()를 통해 성공 여부를 확인하는 것이 좋다.


Redis vs Memcached

두 솔루션 모두 빠르고 효율적이지만, 사용 목적에 따라 선택이 달라질 수 있다.

특징 Redis Memcached
데이터 구조 문자열, 리스트, 해시, 셋 등 다양한 구조 지원 문자열만 지원
지속성 데이터 영속성 옵션 제공 (RDB, AOF) 휘발성 (서버 재시작 시 데이터 소멸)
복제/샤딩 복제 및 클러스터링 지원 클라이언트 측에서 구현해야 함
메모리 가상 메모리 사용 가능 순수 메모리만 사용
Sheets로 내보내기

단순히 데이터를 캐싱하는 용도라면 Memcached로 충분하지만, 세션 관리, 실시간 랭킹 등 복잡한 기능을 활용하고 싶다면 Redis가 더 적합하다.


요약

#PHP 에서 #Redis 와 #Memcached 를 활용하여 캐싱을 구현하면, 데이터베이스에 대한 부담을 줄이고 서비스의 #성능 을 크게 개선할 수 있다. 각각의 특징을 이해하고 애플리케이션의 요구사항에 맞춰 적절한 솔루션을 선택하는 것이 중요하다. PHP 확장 설치 후, 제공되는 클래스를 사용하여 간편하게 캐싱을 적용할 수 있다.


Redis, Memcached, 인메모리데이터베이스, 캐싱, PHP, PHP확장, 성능

 

 

유동프록시 2,000개 IP제공. 다수의 마케팅 전문가가 사용. 트래픽,마케팅용 최적화서비스

https://xn--299ao67b9qbmsf04c.net/

 

VPN 5,500원 / IP교체 1,100원 / 유동프록시 22,000원 | LuzenVPN 루젠VPN

국내최저가 고정IP서비스,유동프록시(IP4000개이상제공),PPTP,L2TP,IPSec,OpenVPNVPN,통신사VPN,VPN프로그램,고정IP,고정아이피,PPTP,저렴한VPN,리니지MVPN,리니지VPN,아이온VPN,던파VPN,유동프록시,유동PROXY,바이

vpn.luzensoft.com