View

[DB] ๐Ÿ’ก๋ ˆ๋””์Šค(Redis)๋ž€?

์ฑ…์ฝ๋Š” ๊ฐ์ž 2022. 9. 8. 15:05
๋ฐ˜์‘ํ˜•

๐Ÿ’ก๋ ˆ๋””์Šค(Redis)๋ž€?

Redis๋ž€ REmote DIctionary Server์˜ ์•ฝ์ž๋กœ ์˜คํ”ˆ์†Œ์Šค DBMS์ด๋‹ค

๋น„์ •ํ˜• ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๋น„๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ

 ํŽ˜์ด์Šค๋ถ, ๋„ทํ”Œ๋ฆญ์Šค ๋“ฑ์€ ์ด๋ฏธ NoSQL DB๊ธฐ์ˆ ์„ ํ™œ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ์„ ํ˜ธํ•˜๋Š” ์ƒํ’ˆ์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ณด์—ฌ์ค„ ๋•Œ, ๊ฑฐ์˜ ์˜ˆ์™ธ ์—†์ด NoDQL DB๋ฅผ ์‚ฌ์šฉ ์ค‘์ด๋‹ค ๊ธฐ์กด์˜ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ณด๋‹ค ๋” ์œตํ†ต์„ฑ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜๊ณ  ๋‹จ์ˆœ ๊ฒ€์ƒ‰ ๋ฐ ์ถ”๊ฐ€ ์ž‘์—…์— ์žˆ์–ด์„œ ๋งค์šฐ ์ตœ์ ํšŒ๋œ ํ‚ค-๊ฐ’ ์ €์žฅ ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•จ → ์‘๋‹ต์†๋„์™€ ์ฒ˜๋ฆฌ ํšจ์œจ ๊ตฟ

NoSQL์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€? ๋Œ€๋Ÿ‰๋ฐ์ดํ„ฐ ๋™์‹œ์ฒ˜๋ฆฌ์œ„ํ•œ DBMS ์ข…๋ฅ˜์™€ ํŠน์ง•

ํ‚ค-๊ฐ’ ๊ธฐ๋ฐ˜์ด๊ธฐ ๋•Œ๋ฌธ์— ์ฟผ๋ฆฌ๋ฅผ ๋”ฐ๋กœํ•  ํ•„์š” ์—†์ด ๊ฒฐ๊ณผ๋ฅผ ๋ฐ”๋กœ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋””์Šคํฌ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์“ฐ๋Š” ๊ตฌ์กฐ๊ฐ€ ์•„๋‹ˆ๋ผ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•จ → ๋ฐ์ดํ„ฐ ์†๋„ ๋น ๋ฆ„ (CPU ๋ช…๋ น์„ ์ ๊ฒŒ ์‚ฌ์šฉ)

 


๐Ÿ’ก๋ ˆ๋””์Šค(Redis) ํŠน์ง•

1๏ธโƒฃ ์ธ ๋ฉ”๋ชจ๋ฆฌ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ

: List, Set, Hash, Map ๋“ฑ์˜ ์œ ํ˜•๋“ค์„ ์ธ ๋ฉ”๋ชจ๋ฆฌ ์•ˆ์— ์ €์žฅ ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋‹ค๋ฅธ ์ธ ๋ฉ”๋ชจ๋ฆฌ ๋ฐ์ดํ„ฐ DB์™€ ๊ฐ€์žฅ ํฐ ์ฐจ์ด์ ์€ ๋‹ค์–‘ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์ง€์›ํ•˜๊ณ  ์žˆ๋‹ค๋Š” ์ ์ด๋‹ค

๋”ฐ๋ผ์„œ ๊ฐœ๋ฐœ์˜ ํŽธ์˜์„ฑ์€ ํ–ฅ์ƒ๋˜๊ณ  ๋‚œ์ด๋„๋Š” ๋‚ฎ์•„์ง„๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์Œ

2๏ธโƒฃ ๋ฐ์ดํ„ฐ ์˜์†ํ™”

๋ ˆ๋””์Šค๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋””์Šคํฌ์— ์ €์žฅํ•˜์—ฌ, ์˜์†ํ™” ์‹œํ‚ค๋Š” ๊ธฐ๋Šฅ์„ ๊ฐ–๊ณ  ์žˆ๊ธฐ์— ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ํœ˜๋ฐœ์„ฑ์œผ๋กœ ์‚ฌ๋ผ์ง€์ง€ ์•Š๋Š”๋‹ค

  • ํŠน์ • ์‹œ์  ์Šค๋ƒ…์ƒท(Snapshot): ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณ€๊ฒฝ๋  ๋•Œ๋งˆ๋‹ค ์ด๋ฅผ ๋””์Šคํฌ์— ์ €์žฅํ•˜๋Š” `Append Only File
    (AOF)` ์ƒ์„ฑ → ๋ฐ์ดํ„ฐ๋ฅผ ํŒŒ์ผ์— ๊ธฐ๋กํ•ด์„œ ๋ฐ์ดํ„ฐ ์†์‹ค์„ ๋ฐฉ์ง€ ๋ฐ ์žฅ์•  ๋ฐœ์ƒ ์‹œ ๋ฐ์ดํ„ฐ ์‹ ์†ํ•˜๊ฒŒ ๋ณต์›

3๏ธโƒฃ ๋ถ€ํ•˜๋ถ„์‚ฐ

๋ ˆ๋””์Šค์—๋Š” ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ๋กœ ๋ณต์ œ๋ฅผ ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์žˆ์–ด, ๊ฐฑ์‹ ์ด ๊ฐ€๋Šฅํ•œ 1๋Œ€๋ฅผ ๋งˆ์Šคํ„ฐ๋กœ, ๊ทธ ๋ณต์ œ๋œ ์ฝ๊ธฐ ์ „์šฉ์˜ ๋ณต์ˆ˜์˜ ์ปดํ“จํ„ฐ๋ฅผ ์Šฌ๋ ˆ์ด๋ธŒ๋กœ ๊ตฌ์„ฑํ•˜์—ฌ ๋ถ„์‚ฐํ™˜๊ฒฝ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค

์ฃผ ์„œ๋ฒ„์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ ์š”์ฒญ์ด ์—ฌ๋Ÿฌ ์„œ๋ฒ„๋กœ ๋ถ„์‚ฐ๋  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ํ–ฅ์ƒ๋œ ์ฝ๊ธฐ ์„ฑ๋Šฅ๊ณผ ๋ณต๊ตฌ ๊ธฐ๋Šฅ์„ ๋ชจ๋‘ ์ œ๊ณตํ•จ

3๏ธโƒฃ ์‹ฑ๊ธ€ ์Šค๋ ˆ๋“œ ๋ฐฉ์‹

๋”ฐ๋ผ์„œ race condition ์„ ํ”ผํ•ด ๋ฐ์ดํ„ฐ์˜ ์ •ํ•ฉ์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์‰ฝ๋‹ค

๋ฐ˜๋ฉด, ์ฒ˜๋ฆฌ ์‹œ๊ฐ„์ด ๊ธด ๋ช…๋ น์–ด๊ฐ€ ๋“ค์–ด์˜ฌ ๊ฒฝ์šฐ ์‹ฑ๊ธ€ ์Šค๋ ˆ๋“œ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค๋ฅธ ๋ช…๋ น์–ด๋“ค์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†๋Š” ์ƒํƒœ๊ฐ€ ๋œ๋‹ค. ์™ ๋งŒํ•˜๋ฉด ์ฒ˜๋ฆฌ ์‹œ๊ฐ„์ด ๊ธด ๋ช…๋ น์–ด๋Š” ํ”ผํ•˜๊ณ  O(1) ๋กœ ๋™์ž‘ํ•˜๋Š” ๋ช…๋ น์„ ์‹คํ–‰์‹œํ‚ค๋Š” ๊ฒƒ์„ ๊ถŒ๊ณ ํ•œ๋‹ค

4๏ธโƒฃ ๋ฉ”๋ชจ๋ฆฌ ๋‹จํŽธํ™” ํ˜น์€ ํŒŒํŽธํ™”

RAM์—์„œ ๋ฉ”๋ชจ๋ฆฌ์˜ ๊ณต๊ฐ„์ด ์ž‘์€ ์กฐ๊ฐ์œผ๋กœ ๋‚˜๋‰˜์–ด์ ธ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์ถฉ๋ถ„ํžˆ ์กด์žฌํ•˜์ง€๋งŒ ํ• ๋‹น์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ์ƒํƒœ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ ๋‹จํŽธํ™”๋ผ๊ณ  ํ•œ๋‹ค.

redis๋Š” jmalloc์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹นํ•œ๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด jmalloc์ด ๋ฉ”๋ชจ๋ฆฌ ํŽ˜์ด์ง€ ์‚ฌ์ด์ฆˆ๋ฅผ4096byte๋กœ ์žก์œผ๋ฉด1byte๋งŒ ์ €์žฅํ•˜๊ฒŒ ๋˜์–ด๋„4096byte๋ฅผ ํ• ๋‹นํ•œ๋‹ค. ๋•Œ๋ฌธ์— ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์ด ๋ฐœ์ƒํ•˜๊ฒŒ ๋œ๋‹ค. ๋•Œ๋ฌธ์— ๊ฐœ๋ฐœ์ž๋Š” ์ •ํ™•ํ•œ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์„ ํŒŒ์•…ํ•˜๊ธฐ ์–ด๋ ต๋‹ค.


  • Redis๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ป๊ฒŒ ์˜๊ตฌํ™” ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š”๊ฐ€?
  • Redis์—๋Š” ์–ด๋– ํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๊ฐ€ ์žˆ๋Š”๊ฐ€?
  • Redis๋Š” ์™œ ์„ฑ๋Šฅ์ด ๋†’์€๊ฐ€?

๐Ÿ’œ ์ถœ์ฒ˜ ๋ฐ ์ฐธ๊ณ  ์ฐจ๋ฃŒ

์ธ๋ฉ”๋ชจ๋ฆฌ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ Redis, ์™œ ์‚ฌ์šฉํ• ๊นŒ? #Redis ํŒŒํ—ค์น˜๊ธฐ

๋ ˆ๋””์Šค (Redis)์˜ ๊ฐœ๋…, ํŠน์ง•

Redis๋ž€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? - Amazon Web Services(AWS)

๋ฐ˜์‘ํ˜•
Share Link
reply
๋ฐ˜์‘ํ˜•
ยซ   2024/11   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30