redis๋ž€?

โœ… ๊ณต์‹๋ฌธ์„œ์—์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

Redis๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ์บ์‹œ, ๋ฉ”์‹œ์ง€ ๋ธŒ๋กœ์ปค ๋ฐ ์ŠคํŠธ๋ฆฌ๋ฐ ์—”์ง„์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์˜คํ”ˆ ์†Œ์Šค(BSD ๋ผ์ด์„ผ์Šค), ๋ฉ”๋ชจ๋ฆฌ ๋‚ด ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ์ €์žฅ์†Œ์ž…๋‹ˆ๋‹ค. Redis๋Š” strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs, geospatial indexes, and streams๊ณผ ๊ฐ™์€ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Redis๋Š” ๊ธฐ๋ณธ ์ œ๊ณต ๋ณต์ œ, Lua ์Šคํฌ๋ฆฝํŒ…, LRU ์ œ๊ฑฐ, ํŠธ๋žœ์žญ์…˜ ๋ฐ ๋‹ค์–‘ํ•œ ์ˆ˜์ค€์˜ ์˜จ๋””์Šคํฌ ์ง€์†์„ฑ์„ ๊ฐ–์ถ”๊ณ  ์žˆ์œผ๋ฉฐ Redis Sentinel์„ ํ†ตํ•œ ๊ณ ๊ฐ€์šฉ์„ฑ ๋ฐ Redis ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ํ†ตํ•œ ์ž๋™ ํŒŒํ‹ฐ์…”๋‹์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

 

redis๋Š” remote dictionary server์˜ ์ค„์ž„๋ง์ž…๋‹ˆ๋‹ค.

์‚ฌ์ „ ๊ฐ™์€ ๊ตฌ์กฐ๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ, ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค. ์ฆ‰, key-value ๊ตฌ์กฐ๋ฅผ ์ด์šฉํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

redis๋Š” db-engines.com์—์„œ key, value ์ €์žฅ์†Œ ์ค‘ ๊ฐ€์žฅ ๋†’์€ ์ˆœ์œ„์ž…๋‹ˆ๋‹ค.

2023๋…„ 1์›” 18์ผ ๊ธฐ์ค€

 

ํŠน์ง•

  • key-value ๊ตฌ์กฐ์˜ NoSQL
    • ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ํ•„์š”๊ฐ€ ์—†์Œ
  • In-Memory ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
    • ๋งค์šฐ ๋น ๋ฅธ ์†๋„
    • ์„œ๋ฒ„ ์žฌ์‹œ์ž‘ ์‹œ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ฌ๋ผ์ง€๊ธฐ ๋•Œ๋ฌธ์— ์œ ์˜ ํ•„์š”
    • ๋ณต์ œ์™€ ๋ฐฑ์—…์€ ๋‹ค๋ฅธ ๊ฒƒ์œผ๋กœ ๋ณต์ œ๋กœ๋Š” ๋ณต์›์ด ๋ถˆ๊ฐ€, ์ค‘์š”ํ•œ ๋ฐ์ดํ„ฐ๋Š” ์ฃผ๊ธฐ์  ๋ฐฑ์—… ํ•„์š”
  • ๋‹ค์–‘ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ ์ง€์›
    • sorted sets ํƒ€์ž…์„ ํ™œ์šฉํ•˜๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋จ๊ณผ ๋™์‹œ์— ์ •๋ ฌ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์‹ค์‹œ๊ฐ„ ๋žญํ‚น ์‹œ์Šคํ…œ ๊ฐœ๋ฐœ์— ์œ ์šฉํ•จ
    • application ๋‹จ์—์„œ ์ž‘์„ฑํ•  ๋กœ์ง์„ redis๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Œ
    • ์ž๋ฃŒ๊ตฌ์กฐ ๋ณ„๋กœ ๋‹ค๋ฅธ ์ปค๋งจ๋“œ ์ œ๊ณต
  • Single Thread ๋ฐฉ์‹ ๋™์ž‘
    • ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ ๋ช…๋ น๋งŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Œ
    • ์ฒ˜๋ฆฌ ์‹œ๊ฐ„์ด ๊ธด ๋ช…๋ น์–ด๊ฐ€ ๋“ค์–ด์˜ค๋ฉด ๋’ค ๋ช…๋ น์–ด๋“ค์€ ์•ž์— ์žˆ๋Š” ๋ช…๋ น์–ด๊ฐ€ ์ฒ˜๋ฆฌ๋  ๋•Œ๊นŒ์ง€ ๋Œ€๊ธฐ
    • ํ•˜์ง€๋งŒ get, set ๋ช…๋ น์–ด์˜ ๊ฒฝ์šฐ ์ดˆ๋‹น 10๋งŒ ๊ฐœ ์ด์ƒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์„ ๋งŒํผ ๋น ๋ฆ„
    • atomic์„ ๋ณด์žฅํ•˜๊ณ , race condition์„ ํšŒํ”ผ
  • ๋ฒ„์ „ 6.x๋ถ€ํ„ฐ ์•„๋ž˜์™€ ๊ฐ™์€ ๋ถ€๋ถ„์—๋งŒ Multi Thread ๋„์ž…
    • ํด๋ผ์ด์–ธํŠธ์—์„œ ์ „์†กํ•œ ๋ช…๋ น์„ ์ฝ๊ณ  ํŒŒ์‹ฑํ•˜๋Š” ๋ถ€๋ถ„
    • ๋ช…๋ น์–ด ์ฒ˜๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ „์†กํ•˜๋Š” ๋ถ€๋ถ„
    • (์ฃผ์˜) ๋ช…๋ น์–ด ์‹คํ–‰ ์ž์ฒด๋Š” ์œ„์˜ ๋ฉ”์ธ์Šค๋ ˆ๋“œ์—์„œ ์ˆ˜ํ–‰ํ•˜๋ฏ€๋กœ ์—ฌ์ „ํžˆ ์‹ฑ๊ธ€์Šค๋ ˆ๋“œ๋ผ๊ณ  ๋ด์•ผํ•จ

 

์™œ ์“ธ๊นŒ?

DB๊ฐ€ ์žˆ๋Š”๋ฐ๋„ redis๋ผ๋Š” ์ธ๋ฉ”๋ชจ๋ฆฌ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ผ๊นŒ์š”?

 

์„œ๋น„์Šค์˜ ์œ ์ €๊ฐ€ ์ฆ๊ฐ€ํ–ˆ์„ ๋•Œ ๋ชจ๋“  ์œ ์ €์˜ ์š”์ฒญ์„ DB ์ ‘๊ทผ์œผ๋กœ๋งŒ ์ฒ˜๋ฆฌํ•œ๋‹ค๋ฉด DB ์„œ๋ฒ„์— ๋ถ€ํ•˜๊ฐ€ ์ฆ๊ฐ€ํ•  ์ˆ˜ ๋ฐ–์— ์—†์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์Šคํ‚ค๋งˆ๊ฐ€ ์ •ํ•ด์ ธ ์žˆ์–ด ํฐ ์ €์žฅ๊ณต๊ฐ„์„ ์ฐจ์ง€ํ•˜๋Š” ํ…Œ์ด๋ธ”์—๋Š” ์ปฌ๋Ÿผ ํ•˜๋‚˜๋งŒ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ๋„ ์‰ฝ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

 

์ด๋ฅผ ๊ฐœ์„ ํ•˜๊ณ ์ž DB๋ฅผ ์Šค์ผ€์ผ ์ธ, ์Šค์ผ€์ผ ์•„์›ƒ ํ•˜๋Š” ๋ฐฉ์‹ ์™ธ์— ์บ์‹œ ์„œ๋ฒ„๋กœ ์ด์šฉํ•˜๋Š” ๊ฒƒ์ด redis ์ž…๋‹ˆ๋‹ค.

 

์บ์‹œ๋Š” ํ•œ๋ฒˆ ์ฝ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฏธ๋ฆฌ ์ €์žฅํ•ด๋‘์—ˆ๋‹ค๊ฐ€ ๋‹ค์Œ์— ์ฝ์„ ๋•Œ๋Š” ๋น ๋ฅด๊ฒŒ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋™์ž‘ํ•˜๋Š” ๊ณต๊ฐ„์ž…๋‹ˆ๋‹ค.

๊ฐ™์€ ์š”์ฒญ์ด ์—ฌ๋Ÿฌ ๋ฒˆ ๋“ค์–ด์˜ค๋Š” ๊ฒฝ์šฐ ๋งค๋ฒˆ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ฑฐ์น˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์บ์‹œ ์„œ๋ฒ„์—์„œ ๊ฒฐ๊ณผ๊ฐ’์„ ๋ฐ”๋กœ ๋‚ด๋ ค์ฃผ๊ธฐ ๋•Œ๋ฌธ์— DB์˜ ๋ถ€ํ•˜๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๊ณ , ์„œ๋น„์Šค ์†๋„๋„ ๋Š๋ ค์ง€์ง€ ์•Š๋Š” ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

 

+ Recent posts