216.73.216.25 TODAY : 8,430

์˜จ๋ผ์ธ ๊ฐ•์˜

 > 

PHP - ๊ณ ๊ธ‰

๐Ÿ“š PHP ๊ณ ๊ธ‰ - 6์ฃผ์ฐจ: ์บ์‹ฑ (Caching) ์ „๋žต - 03 Redis/Memcached ์—ฐ๋™

๐Ÿ“š PHP ๊ณ ๊ธ‰ - 6์ฃผ์ฐจ: ์บ์‹ฑ (Caching) ์ „๋žต - 03 Redis/Memcached ์—ฐ๋™

์ฃผ์š” ํ”„๋กœ๊ทธ๋žจ ์ŠคํŽ™

  • ํ‰์ : 10.0
  • ๋ผ์ด์„ ์Šค: free
  • ์šด์˜์ฒด์ œ:
  • ํŒŒ์ผ ํฌ๊ธฐ: 0

ํ”ผ๋“œ๋ฐฑ ๋ฐ ๋‹ค์šด๋กœ๋“œ

  • ์‚ฌ์šฉ์ž ํ‰์ : 10.0
  • ๋‹ค์šด๋กœ๋“œ ์ˆ˜: 1
  • ์กฐํšŒ์ˆ˜: 73

์ œ์กฐ์‚ฌ ๋ฐ ๋“ฑ๋ก ์ •๋ณด

  • ์ œ์ž‘์‚ฌ: LUZENSOFT
  • ๋“ฑ๋ก์ผ: 2025-09-14 16:30:18
  •  

- ์„ค๋ช…

Redis์™€ Memcached ์†Œ๊ฐœ

uploadImage

#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 ์—ฐ๋™

uploadImage

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/๏ปฟ