์จ๋ผ์ธ ๊ฐ์
>PHP - ๊ณ ๊ธ
๐ PHP ๊ณ ๊ธ - 6์ฃผ์ฐจ: ์บ์ฑ (Caching) ์ ๋ต - 03 Redis/Memcached ์ฐ๋
				์ฃผ์ ํ๋ก๊ทธ๋จ ์คํ
- ํ์ : 10.0
 - ๋ผ์ด์ ์ค: free
 - ์ด์์ฒด์ :
 - ํ์ผ ํฌ๊ธฐ: 0
 
ํผ๋๋ฐฑ ๋ฐ ๋ค์ด๋ก๋
- ์ฌ์ฉ์ ํ์ : 10.0
 - ๋ค์ด๋ก๋ ์: 1
 - ์กฐํ์: 73
 
์ ์กฐ์ฌ ๋ฐ ๋ฑ๋ก ์ ๋ณด
- ์ ์์ฌ: LUZENSOFT
 - ๋ฑ๋ก์ผ: 2025-09-14 16:30:18
 
- ์ค๋ช
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/๏ปฟ