2025. 9. 14. 16:30ㆍ프로그램/PHP 고급
Redis와 Memcached 소개

#Redis 와 #Memcached 는 대표적인 #인메모리데이터베이스 이자 #캐싱 솔루션이다. 둘 다 빠른 속도를 자랑하며, 웹 애플리케이션의 성능을 향상시키는 데 널리 사용된다. #PHP 에서 이들을 활용하면 데이터베이스의 부담을 줄이고 응답 속도를 극적으로 개선할 수 있다. Redis는 단순 캐싱 외에 다양한 데이터 구조를 지원하는 반면, Memcached는 순수하게 캐싱에 초점을 맞추고 있어 더 가볍다.
PHP와 Redis 연동
PHP에서 Redis를 사용하려면 php-redis 확장(#PHP확장)을 설치해야 한다. 터미널에서 다음 명령어를 실행하여 설치할 수 있다.
sudo pecl install redis
설치 후 php.ini 파일에 extension=redis.so 또는 extension=redis.dll을 추가하고 웹 서버를 재시작해야 한다.
기본 사용법
Redis 확장을 설치하면 PHP에서 Redis 클래스를 사용할 수 있다.
<?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확장)을 설치해야 한다.
sudo pecl install memcached
설치 후 php.ini 파일에 extension=memcached.so 또는 extension=memcached.dll을 추가하고 웹 서버를 재시작해야 한다.
기본 사용법
Memcached 확장을 설치하면 PHP에서 Memcached 클래스를 사용할 수 있다.
<?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) | 휘발성 (서버 재시작 시 데이터 소멸) |
| 복제/샤딩 | 복제 및 클러스터링 지원 | 클라이언트 측에서 구현해야 함 |
| 메모리 | 가상 메모리 사용 가능 | 순수 메모리만 사용 |
단순히 데이터를 캐싱하는 용도라면 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
'프로그램 > PHP 고급' 카테고리의 다른 글
| 📚 PHP 고급 - 7주차: 성능 최적화 및 디버깅 - 02 코드 프로파일링 (Xdebug) (0) | 2025.09.22 |
|---|---|
| 📚 PHP 고급 - 7주차: 성능 최적화 및 디버깅 - 01 DB 쿼리 최적화 (인덱스 활용) (0) | 2025.09.21 |
| 📚 PHP 고급 - 6주차: 캐싱 (Caching) 전략 - 02 프레임워크 캐싱 시스템 활용 (0) | 2025.09.14 |
| 📚 PHP 고급 - 6주차: 캐싱 (Caching) 전략 - 01 캐싱의 중요성과 종류 (데이터베이스 캐싱, HTTP 캐싱, OPcache) (0) | 2025.09.14 |
| 📚 PHP 고급 - 5주차: RESTful API 보안 및 인증 - 03 API 요청 제한 (Rate Limiting) (0) | 2025.09.14 |