๐Ÿš€ ์—”์ง€๋‹ˆ์–ด๋ผ๋ฉด ๋ฐ˜๋“œ์‹œ ์•Œ์•„์•ผ ํ•  Redis ์ž๋ฃŒ๊ตฌ์กฐ 10๊ฐ€์ง€ ์ด์ •๋ฆฌ!

Redis 8 ๋ฒ„์ „๋ถ€ํ„ฐ๋Š” ๋ฌด๋ ค 10๊ฐ€์ง€์˜ ๊ฐ•๋ ฅํ•œ ์ž๋ฃŒ๊ตฌ์กฐ๊ฐ€ ๊ธฐ๋ณธ์œผ๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ๋‹จ์ˆœํ•œ Key-Value ์ €์žฅ์„ ๋„˜์–ด ๋ฉ”์‹œ์ง€ ํ, ์‹ค์‹œ๊ฐ„ ๋ฆฌ๋”๋ณด๋“œ, ์œ„์น˜ ๊ธฐ๋ฐ˜ ๊ฒ€์ƒ‰, ๊ทธ๋ฆฌ๊ณ  ์ตœ๊ทผ ํ•ซํ•œ AI ๊ธฐ๋ฐ˜ ๋ฒกํ„ฐ ๊ฒ€์ƒ‰๊นŒ์ง€! ์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜๋ฅผ ํ•œ ๋‹จ๊ณ„ ์—…๊ทธ๋ ˆ์ด๋“œํ•ด ์ค„ Redis์˜ ๋ชจ๋“  ๊ฒƒ์„ ์š”์•ฝํ•ด ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

:hammer_and_wrench: ํ•ต์‹ฌ ์ž๋ฃŒ๊ตฌ์กฐ (CORE)

  • String (๋ฌธ์ž์—ด): ํ‚ค ํ•˜๋‚˜๋‹น ํ•˜๋‚˜์˜ ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ด๊ณ  ๊ฐ•๋ ฅํ•œ ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ์กฐํšŒ์ˆ˜ ์นด์šดํ„ฐ, ์„ธ์…˜ ํ† ํฐ, ์บ์‹œ ํŽ˜์ด๋กœ๋“œ ๋“ฑ์— ์ตœ์ ํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. :memo:
  • Hash (ํ•ด์‹œ): ๋‹จ์ผ ํ‚ค ์•„๋ž˜์— ๊ฐ์ฒด์˜ ์—ฌ๋Ÿฌ ํ•„๋“œ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ํ†ต์งธ๋กœ ๋ฎ์–ด์“ธ ํ•„์š” ์—†์ด ํŠน์ • ํ•„๋“œ(์˜ˆ: ์‚ฌ์šฉ์ž ํ”„๋กœํ•„์˜ ์ผ๋ถ€)๋งŒ ๊ฐœ๋ณ„์ ์œผ๋กœ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. :card_index_dividers:
  • List (๋ฆฌ์ŠคํŠธ): ์–‘๋ฐฉํ–ฅ(์•ž/๋’ค)์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋น ๋ฅด๊ฒŒ ๋„ฃ๊ณ  ๋บ„ ์ˆ˜ ์žˆ๋Š” ์ˆœ์„œ๊ฐ€ ์žˆ๋Š” ์‹œํ€€์Šค์ž…๋‹ˆ๋‹ค. ๋Œ€๊ธฐ์—ด(Queue), ํƒ€์ž„๋ผ์ธ ํ”ผ๋“œ, โ€˜์ตœ๊ทผ ๊ฒ€์ƒ‰์–ดโ€™ ๋ชฉ๋ก ๊ตฌํ˜„์— ์•ˆ์„ฑ๋งž์ถค์ž…๋‹ˆ๋‹ค. :pancakes:
  • Set (์„ธํŠธ): ์ค‘๋ณต์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š” ๊ณ ์œ ํ•œ ๊ฐ’๋“ค์˜ ์ง‘ํ•ฉ์ž…๋‹ˆ๋‹ค. ํ•ฉ์ง‘ํ•ฉ, ๊ต์ง‘ํ•ฉ, ์ฐจ์ง‘ํ•ฉ ์—ฐ์‚ฐ์„ ์ง€์›ํ•˜์—ฌ ํƒœ๊ทธ ๊ธฐ๋Šฅ, ํŒ”๋กœ์›Œ ์ค‘๋ณต ํ™•์ธ, ๋ฐ์ดํ„ฐ ์ค‘๋ณต ์ œ๊ฑฐ์— ํƒ์›”ํ•ฉ๋‹ˆ๋‹ค. :hollow_red_circle:
  • Sorted Set (์ •๋ ฌ๋œ ์„ธํŠธ): ๊ฐ ๋ฉค๋ฒ„์— ์ˆซ์ž ํ˜•ํƒœ์˜ '์ ์ˆ˜(Score)'๋ฅผ ๋ถ€์—ฌํ•˜์—ฌ ์ž๋™์œผ๋กœ ์ˆœ์œ„๋ฅผ ๋งค๊น๋‹ˆ๋‹ค. ์‹ค์‹œ๊ฐ„ ๊ฒŒ์ž„ ๋ฆฌ๋”๋ณด๋“œ, ์šฐ์„ ์ˆœ์œ„ ํ, ์ƒ์œ„ N๊ฐœ ์ฟผ๋ฆฌ ์ฒ˜๋ฆฌ์— ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค! :trophy:
  • Stream (์ŠคํŠธ๋ฆผ): ์†Œ๋น„์ž ๊ทธ๋ฃน(Consumer Groups)์„ ์ง€์›ํ•˜๋Š” ์ถ”๊ฐ€ ์ „์šฉ(Append-only) ์ด๋ฒคํŠธ ๋กœ๊ทธ์ž…๋‹ˆ๋‹ค. ๊ฐ ์†Œ๋น„์ž์˜ ์ฝ๊ธฐ ์œ„์น˜๋ฅผ ์ถ”์ ํ•˜๊ณ , ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š์€ ๋ฉ”์‹œ์ง€๋ฅผ ์„œ๋ฒ„๊ฐ€ ๊ด€๋ฆฌํ•ด ์ค๋‹ˆ๋‹ค. :ocean:
  • JSON: ์ค‘์ฒฉ๋œ JSON ๋ฌธ์„œ๋ฅผ ๊ทธ๋Œ€๋กœ ์ €์žฅํ•˜๊ณ  JSONPath๋ฅผ ํ†ตํ•ด ์ ‘๊ทผํ•ฉ๋‹ˆ๋‹ค. ๋ณต์žกํ•œ ๋ฌธ์„œ ๊ตฌ์กฐ๋ฅผ ๊ตณ์ด ์ฝ๊ณ -์ˆ˜์ •ํ•˜๊ณ -๋‹ค์‹œ์“ฐ๋Š”(read-modify-write) ๊ณผ์ • ์—†์ด, ๋‚ด๋ถ€์˜ ๊นŠ์€ ํ•„๋“œ๋งŒ ๋ฐ”๋กœ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. :puzzle_piece:

:sparkles: ํŠนํ™” ์ž๋ฃŒ๊ตฌ์กฐ (SPECIAL)

  • Geospatial (๊ณต๊ฐ„ ์ •๋ณด): ์œ„๋„์™€ ๊ฒฝ๋„ ์ธ๋ฑ์Šค๋ฅผ ์ œ๊ณตํ•˜์—ฌ 'ํŠน์ • ๋ฐ˜๊ฒฝ ๋‚ด ๊ฒ€์ƒ‰โ€™์ด๋‚˜ '๋ฐ•์Šค ์˜์—ญ ์ฟผ๋ฆฌโ€™๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. (๋‚ด๋ถ€์ ์œผ๋กœ๋Š” ์ง€์˜คํ•ด์‹œ ์ ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” Sorted Set์œผ๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.) :round_pushpin:
  • Vector Set (๋ฒกํ„ฐ ์„ธํŠธ): ์ž„๋ฒ ๋”ฉ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด โ€˜๊ทผ์‚ฌ ์ตœ๊ทผ์ ‘ ์ด์›ƒ(ANN)โ€™ ๊ฒ€์ƒ‰์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ตœ๊ทผ LLM์„ ํ™œ์šฉํ•˜๋Š” ๋Œ€๋ถ€๋ถ„์˜ RAG(๊ฒ€์ƒ‰ ์ฆ๊ฐ• ์ƒ์„ฑ) ํŒŒ์ดํ”„๋ผ์ธ์—์„œ ํ•ต์‹ฌ์ ์ธ ๊ฒ€์ƒ‰ ์—ญํ• ์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค. :robot:
  • Time Series (์‹œ๊ณ„์—ด): ํƒ€์ž„์Šคํƒฌํ”„๊ฐ€ ์ฐํžŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋ฉฐ, ๋ฐ์ดํ„ฐ ๋ณด์กด ๊ธฐ๊ฐ„ ์„ค์ • ๋ฐ ๋‹ค์šด์ƒ˜ํ”Œ๋ง ๊ธฐ๋Šฅ์„ ์ž์ฒด ๋‚ด์žฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์„œ๋ฒ„ ๋ฉ”ํŠธ๋ฆญ, ํ…”๋ ˆ๋ฉ”ํŠธ๋ฆฌ, IoT ์„ผ์„œ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ์— ์™„๋ฒฝํ•ฉ๋‹ˆ๋‹ค. :chart_increasing:

[์ถœ์ฒ˜] Redis Data Structures for Engineers | Alex Xu๋‹˜์ด ํ† ํ”ฝ์— ๋Œ€ํ•ด ์˜ฌ๋ฆผ | LinkedIn

| This is a space where knowledge is not merely consumed, but respected, sovereign, and connectedโ€”shared together with cloud industry professionals (Bros).|
| ์ง€์‹์ด ์†Œ๋น„๋˜์ง€ ์•Š๊ณ  ์กด์ค‘ยท์ฃผ๊ถŒ๋ณด์žฅยท์—ฐ๊ฒฐ๋˜๋Š” ๊ณต๊ฐ„์œผ๋กœ ํด๋ผ์šฐ๋“œ ํ˜„์—… ์ „๋ฌธ๊ฐ€(Bro)์™€ ํ•จ๊ป˜ ๊ณต์œ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. |