Post

Redis๋ž€?

redis.png

Redis (Remote dictionary server) ๋ž€?

์˜คํ”ˆ ์†Œ์Šค ์ธ๋ฉ”๋ชจ๋ฆฌ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์˜ ์ €์žฅ์†Œ๋กœ, ์ฃผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ์บ์‹œ, ๋ฉ”์‹œ์ง€ ๋ธŒ๋กœ์ปค๋กœ ์‚ฌ์šฉ๋œ๋‹ค.
๋น ๋ฅธ ์ ‘๊ทผ ์†๋„์™€ ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์ง€์›ํ•œ๋‹ค.

๋ฐ์ดํ„ฐ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•˜์—ฌ ๋น ๋ฅธ ์ ‘๊ทผ ์†๋„๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ, ๋ฐ์ดํ„ฐ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•˜๋ฉด ๋””์Šคํฌ I/O ๋ฅผ ์ค„์ด๊ณ , ๋†’์€ ์„ฑ๋Šฅ์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ‚ค์™€ ๊ฐ’์˜ ๊ตฌ์กฐ๋กœ ์ €์žฅ๋˜๋ฉฐ ๋น„์ •ํ˜• ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ, ๊ด€๋ฆฌํ•œ๋‹ค.



์ธ๋ฉ”๋ชจ๋ฆฌ?

ํŠน์ง•

  1. ์ธ ๋ฉ”๋ชจ๋ฆฌ ์ €์žฅ์†Œ

    ๋ฐ์ดํ„ฐ๋ฅผ ๋””์Šคํฌ๊ฐ€ ์•„๋‹Œ RAM ์— ์ €์žฅํ•˜์—ฌ ๋น ๋ฅด๊ฒŒ ์ ‘๊ทผํ•˜๊ณ  ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•
    ๋น ๋ฅธ ์ ‘๊ทผ ์†๋„๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ง€์—ฐ์ด ์ ๊ณ  ์‘๋‹ต์‹œ๊ฐ„์ด ๋น ๋ฅด๋‹ค.
    ๋ฐ์ดํ„ฐ๊ฐ€ ์„œ๋ฒ„์˜ ๋ฉ”๋ชจ๋ฆฌ์— ์œ ์ง€๋˜๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ฒ„๊ฐ€ ์žฌ๋ถ€ํŒ…๋˜๊ฑฐ๋‚˜ ์ข…๋ฃŒ๋˜๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ฌ๋ผ์งˆ ์ˆ˜ ์žˆ๋‹ค.
    ์ด๋ฅผ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด ์Šค๋ƒ…์ƒท, ๋กœ๊ทธ ๋“ฑ ์˜์†์„ฑ ์˜ต์…˜์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

  2. ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ๋ฌธ์ž์—ด(Strings), ๋ฆฌ์ŠคํŠธ(Lists), ์ง‘ํ•ฉ(Sets), ์ •๋ ฌ๋œ ์ง‘ํ•ฉ(Sorted Sets), ํ•ด์‹œ(Hashes), ๋น„ํŠธ๋งต(Bitmaps), ํ•˜์ดํผ๋กœ๊ทธ๋กœ๊ทธ(HyperLogLogs), ์ง€์˜ค์ŠคํŽ˜์ด์…œ ์ธ๋ฑ์Šค(Geospatial Indexes) ๋“ฑ ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ์ง€์›ํ•˜์—ฌ, ๋ฐ์ดํ„ฐ์˜ ์ €์žฅ๊ณผ ์ ‘๊ทผ์„ ์œ ์—ฐํ•˜๊ฒŒ ํ•œ๋‹ค.

  3. ์˜์†์„ฑ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ธ๋ฉ”๋ชจ๋ฆฌ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ์ด์ง€๋งŒ, ๋ฐ์ดํ„ฐ์˜ ์˜์†์„ฑ์„ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ๋Š” ์˜ต์…˜์„ ์ œ๊ณตํ•œ๋‹ค. ๋ฐ์ดํ„ฐ ์Šค๋ƒ…์ƒท์„ ๋””์Šคํฌ์— ์ €์žฅํ•˜๊ฑฐ๋‚˜(RDB), ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋กœ๊ทธ์— ๊ธฐ๋กํ•˜์—ฌ(AOF) ๋ฐ์ดํ„ฐ ๋ณต๊ตฌ๋ฅผ ์ง€์›ํ•œ๋‹ค.

  4. ๊ณ ๊ธ‰ ๊ธฐ๋Šฅ Pub/Sub : ๋ฉ”์‹œ์ง€ ๋ธŒ๋กœ์ปค ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์—ฌ ๋ฉ”์‹œ์ง€ ์ „๋‹ฌ ๋ฐ ๊ตฌ๋… ์‹œ์Šคํ…œ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ํŠธ๋žœ์žญ์…˜ : ์—ฌ๋Ÿฌ ๋ช…๋ น์–ด๋ฅผ ์›์ž์ ์œผ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.
    Lua ์Šคํฌ๋ฆฝํŒ… : Lua ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„ ์ธก์—์„œ ๋ณต์žกํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

  5. ๋ถ„์‚ฐ ๋ฐ ํด๋Ÿฌ์Šคํ„ฐ๋ง ์ง€์› ๋ ˆ๋””์Šค๋Š” ํด๋Ÿฌ์Šคํ„ฐ ๋ชจ๋“œ์™€ ์ƒค๋”ฉ ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์‚ฐ ์ €์žฅํ•˜๊ณ , ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์™€ ๊ณ ๊ฐ€์šฉ์„ฑ์„ ์ง€์›ํ•œ๋‹ค.
    ๋ฐ์ดํ„ฐ๋ฅผ ์ƒค๋”ฉํ•˜์—ฌ ์—ฌ๋Ÿฌ ๋…ธ๋“œ์— ๋ถ„์‚ฐ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ํด๋Ÿฌ์Šคํ„ฐ๋ง์„ ํ†ตํ•ด ๊ณ ๊ฐ€์šฉ์„ฑ๊ณผ ์ˆ˜ํ‰์  ํ™•์žฅ์„ ์ง€์›ํ•œ๋‹ค.
    ๋งˆ์Šคํ„ฐ-์Šฌ๋ ˆ์ด๋ธŒ ๋ณต์ œ๋ฅผ ์ง€์›ํ•˜์—ฌ, ๋ฐ์ดํ„ฐ๋ฅผ ์—ฌ๋Ÿฌ ์Šฌ๋ ˆ์ด๋ธŒ ๋…ธ๋“œ์— ๋ณต์ œํ•ฉ๋‹ˆ๋‹ค. ๋ณต์ œ๋ฅผ ํ†ตํ•ด ์ฝ๊ธฐ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ณ  ๋ฐ์ดํ„ฐ์˜ ๊ณ ๊ฐ€์šฉ์„ฑ์„ ๋ณด์žฅํ•œ๋‹ค.

  6. ๋†’์€ ์„ฑ๋Šฅ๊ณผ ํ™•์žฅ์„ฑ ๋‹จ์ผ ๋…ธ๋“œ์—์„œ ์ˆ˜๋ฐฑ๋งŒ ๊ฐœ์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•œ๋‹ค.

์‚ฌ์šฉ

  1. ์บ์‹œ
    • ์ž์ฃผ ์กฐํšŒ๋˜๋Š” ๋ฐ์ดํ„ฐ๋‚˜ ๊ฒฐ๊ณผ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ถ€ํ•˜๋ฅผ ์ค„์ด๊ณ  ์‘๋‹ต ์†๋„๋ฅผ ๋น ๋ฅด๊ฒŒ ํ•œ๋‹ค.
  2. ์„ธ์…˜ ์Šคํ† ๋ฆฌ์ง€
    • ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‚ฌ์šฉ์ž ์„ธ์…˜ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•œ๋‹ค.
  3. ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ
    • ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ  ๋ถ„์„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.
    • ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ… ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋ฉ”์‹œ์ง€๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ฑฐ๋‚˜ ์‹ค์‹œ๊ฐ„ ๋ถ„์„ ๋Œ€์‹œ๋ณด๋“œ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ŠคํŠธ๋ฆฌ๋ฐํ•œ๋‹ค.
  4. ํ ์‹œ์Šคํ…œ
    • ์ž‘์—… ํ๋‚˜ ๋ฉ”์‹œ์ง€ ํ๋ฅผ ๊ตฌํ˜„ํ•˜์—ฌ ๋น„๋™๊ธฐ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•œ๋‹ค.
  5. ์ˆœ์œ„ ์‹œ์Šคํ…œ
    • ์ •๋ ฌ๋œ ์ง‘ํ•ฉ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ˆœ์œ„ ์‹œ์Šคํ…œ์„ ๊ตฌํ˜„ํ•˜๊ณ , ์ˆœ์œ„ ๊ธฐ๋ฐ˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•œ๋‹ค.
This post is licensed under CC BY 4.0 by the author.