Skip to content

๐Ÿ“ AI Review: redis/Redis์˜_๊ธฐ๋ณธ_๊ตฌ์กฐ์™€_๋™์ž‘_๋ฐฉ์‹.mdย #8

@hyh1016

Description

@hyh1016

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


1. ์š”์•ฝ ๋ฐ ์ดํ‰

์ œ๊ณต๋œ ํ•™์Šต ๋‚ด์šฉ์€ Redis์˜ ํ•ต์‹ฌ์ ์ธ ์„ค๊ณ„ ์›์น™๊ณผ ๋™์ž‘ ๋ฐฉ์‹์„ ๋ช…ํ™•ํ•˜๊ณ  ์‹ฌ๋„ ์žˆ๊ฒŒ ์„ค๋ช…ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. '์™œ ์‹ฑ๊ธ€ ์Šค๋ ˆ๋“œ์ธ๊ฐ€?'๋ฅผ ์‹œ์ž‘์œผ๋กœ Redis์˜ ์„ฑ๋Šฅ์  ์šฐ์œ„๊ฐ€ ์–ด๋””์—์„œ ์˜ค๋Š”์ง€์— ๋Œ€ํ•œ ๊ทผ๋ณธ์ ์ธ ์งˆ๋ฌธ์— ๋‹ตํ•˜๋ฉฐ, ์ด๋ฒคํŠธ ๋ฃจํ”„ ๊ธฐ๋ฐ˜์˜ ํšจ์œจ์ ์ธ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ ๋ฐฉ์‹๊ณผ ์ธ๋ฉ”๋ชจ๋ฆฌ ํŠน์„ฑ์„ ๊ทน๋Œ€ํ™”ํ•˜๊ธฐ ์œ„ํ•œ ๋ฉ”๋ชจ๋ฆฌ ์ตœ์ ํ™” ๊ธฐ๋ฒ•(SDS, ํšจ์œจ์  ์ธ์ฝ”๋”ฉ, ๊ฐ์ฒด ๊ณต์œ )๋“ค์„ ๊ตฌ์ฒด์ ์œผ๋กœ ์ œ์‹œํ•ฉ๋‹ˆ๋‹ค. Redis์˜ ์žฅ์ ์„ ์š”์•ฝํ•œ ํ›„, ์‹ค์ œ ์šด์˜ ํ™˜๊ฒฝ์—์„œ ์ค‘์š”ํ•˜๊ฒŒ ๊ณ ๋ คํ•ด์•ผ ํ•  ์‚ฌํ•ญ๋“ค(๊ณ ๋น„์šฉ ๋ช…๋ น์–ด, ๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ ์ •์ฑ…, ๋ฉ”๋ชจ๋ฆฌ ํŒŒํŽธํ™”์™€ ๋Œ€์‘ ๋ฐฉ์•ˆ)์„ ๋งค์šฐ ์ƒ์„ธํ•˜๊ณ  ์‹ค์šฉ์ ์œผ๋กœ ๋‹ค๋ฃจ๊ณ  ์žˆ๋‹ค๋Š” ์ ์ด ์ธ์ƒ ๊นŠ์Šต๋‹ˆ๋‹ค. ์ „๋ฐ˜์ ์œผ๋กœ Redis์˜ ๊ธฐ๋ณธ ๊ฐœ๋…์„ ๋„˜์–ด ์‹ฌํ™”๋œ ์šด์˜ ์ง€์‹๊นŒ์ง€ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ํ›Œ๋ฅญํ•œ ํ•™์Šต ์ž๋ฃŒ์ž…๋‹ˆ๋‹ค.

2. ์ค‘์š”ํ•œ ๋ถ€๋ถ„

  • ์‹ฑ๊ธ€ ์Šค๋ ˆ๋“œ ๋ชจ๋ธ์˜ ๊นŠ์ด ์žˆ๋Š” ์ดํ•ด: ๋‹จ์ˆœํžˆ ์‹ฑ๊ธ€ ์Šค๋ ˆ๋“œ๋ผ๊ณ  ํ•˜๋Š” ๊ฒƒ์„ ๋„˜์–ด, Redis์˜ ์ธ๋ฉ”๋ชจ๋ฆฌ ๋ฐ ๋‹จ์ˆœ ์—ฐ์‚ฐ ์œ„์ฃผ์˜ ์›Œํฌ๋กœ๋“œ ํŠน์„ฑ ์ƒ ์ปจํ…์ŠคํŠธ ์Šค์œ„์นญ ๋น„์šฉ๊ณผ ๋ฝ ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ์ค„์ด๋Š” ๊ฒƒ์ด ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ๋ณด๋‹ค ํšจ์œจ์ ์ด๋ผ๋Š” ์ ์„ ๋ช…ํ™•ํžˆ ์„ค๋ช…ํ•œ ๋ถ€๋ถ„์ด ํ›Œ๋ฅญํ•ฉ๋‹ˆ๋‹ค. Redis 6.0๋ถ€ํ„ฐ I/O ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ ๋„์ž…๊นŒ์ง€ ์–ธ๊ธ‰ํ•˜์—ฌ ์ตœ์‹  ๋ณ€ํ™”๋„ ์ž˜ ๋ฐ˜์˜ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์ด๋ฒคํŠธ ๋ฃจํ”„ ๊ธฐ๋ฐ˜ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ: epoll/kqueue์™€ ๊ฐ™์€ OS ์‹œ์Šคํ…œ ์ฝœ์„ ํ™œ์šฉํ•˜์—ฌ ๋‹จ์ผ ์Šค๋ ˆ๋“œ๋กœ ์ˆ˜๋งŽ์€ ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์„ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ์ด๋ฒคํŠธ ๋ฃจํ”„ ๋ฐฉ์‹์„ ์„ค๋ช…ํ•œ ์ ์€ Redis์˜ ํ•ต์‹ฌ ๋™์ž‘ ์›๋ฆฌ๋ฅผ ์ดํ•ดํ•˜๋Š” ๋ฐ ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฉ”๋ชจ๋ฆฌ ์ตœ์ ํ™” ์ „๋žต์˜ ๊ตฌ์ฒด์ ์ธ ์„ค๋ช…: SDS(Simple Dynamic String)์˜ O(1) ๊ธธ์ด ํ™•์ธ, Binary-safe, ๊ณต๊ฐ„ ์žฌํ• ๋‹น ์ „๋žต๊ณผ ๋ฐ์ดํ„ฐ ํฌ๊ธฐ์— ๋”ฐ๋ฅธ ๋‚ด๋ถ€ ์ž๋ฃŒ๊ตฌ์กฐ ๊ต์ฒด(Ziplist/Listpack <-> Hashtable)๋Š” Redis๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ํšจ์œจ์„ ์–ผ๋งˆ๋‚˜ ์ค‘์š”ํ•˜๊ฒŒ ์ƒ๊ฐํ•˜๋Š”์ง€ ๋ณด์—ฌ์ฃผ๋Š” ์ข‹์€ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค.
  • Redis ์‚ฌ์šฉ ์‹œ ์œ ์˜ํ•  ์ ์— ๋Œ€ํ•œ ์ƒ์„ธํ•œ ๊ฐ€์ด๋“œ:
    • O(N) ๋ช…๋ น์–ด ์‚ฌ์šฉ ๊ฒฝ๊ณ  ๋ฐ SCAN ๊ณ„์—ด ๋ช…๋ น์–ด ์ œ์•ˆ: ์‹ค์ œ ์šด์˜ ํ™˜๊ฒฝ์—์„œ ์„œ๋น„์Šค ์žฅ์• ๋ฅผ ์œ ๋ฐœํ•  ์ˆ˜ ์žˆ๋Š” ์น˜๋ช…์ ์ธ ์‹ค์ˆ˜๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ๋งค์šฐ ์‹ค์šฉ์ ์ธ ์กฐ์–ธ์ž…๋‹ˆ๋‹ค.
    • maxmemory-policy ์„ค์ •์˜ ์ค‘์š”์„ฑ: ๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ ์‹œ Redis์˜ ๋™์ž‘ ๋ฐฉ์‹์„ ์ œ์–ดํ•˜๋Š” ์ด ์ •์ฑ…์— ๋Œ€ํ•œ ์ดํ•ด๋Š” ์•ˆ์ •์ ์ธ ์„œ๋น„์Šค ์šด์˜์— ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค.
    • ๋ฉ”๋ชจ๋ฆฌ ํŒŒํŽธํ™”์— ๋Œ€ํ•œ ์‹ฌ์ธต ๋ถ„์„ ๋ฐ ๋Œ€์‘: mem_fragmentation_ratio ์ง€ํ‘œ์˜ ์ƒ์„ธํ•œ ์„ค๋ช…, 1.0 ๋ฏธ๋งŒ ์‹œ ์Šค์™€ํ•‘ ๊ฒฝ๊ณ , Active Defrag ๊ธฐ๋Šฅ ์†Œ๊ฐœ์™€ ์ฃผ์˜์‚ฌํ•ญ ๋“ฑ์€ Redis ์šด์˜์ž๊ฐ€ ๋ฐ˜๋“œ์‹œ ์•Œ์•„์•ผ ํ•  ์ค‘์š”ํ•œ ๋‚ด์šฉ์ด๋ฉฐ, ๋ฌธ์ œ ๋ฐœ์ƒ ์‹œ ์ฆ‰๊ฐ์ ์œผ๋กœ ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ๋Š” ์ง€์‹์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

3. ํ‹€๋ ธ๊ฑฐ๋‚˜ ๋ถ€์กฑํ•œ ๋ถ€๋ถ„

  • SDS์˜ Binary-safe ์„ค๋ช… ๋ณด๊ฐ•: "๋ฌธ์ž์—ด ๊ธธ์ด๋ฅผ ๋ฏธ๋ฆฌ ์•Œ๊ณ  ์žˆ์–ด Binary-safe ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฏธ์ง€/๋น„๋””์˜ค ๊ฐ™์€ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฐ์ดํ„ฐ๋„ ์ €์žฅ ๊ฐ€๋Šฅ" ๋ถ€๋ถ„์—์„œ 'Binary-safe'์˜ ํ•ต์‹ฌ์ ์ธ ์ด์œ ๋Š” C ๋ฌธ์ž์—ด์ฒ˜๋Ÿผ null ์ข…๋ฃŒ ๋ฌธ์ž(\0)์— ์˜์กดํ•˜์ง€ ์•Š๊ณ , ๋ช…์‹œ์ ์œผ๋กœ ๊ธธ์ด๋ฅผ ์ €์žฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ ๋‚ด๋ถ€์— \0์ด ํฌํ•จ๋˜์–ด๋„ ๋ฌธ์ž์—ด์˜ ๋์œผ๋กœ ์˜ค์ธํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์ ์„ ์ถ”๊ฐ€๋กœ ์–ธ๊ธ‰ํ•˜๋ฉด ๋”์šฑ ์ •ํ™•ํ•˜๊ณ  ์™„์ „ํ•œ ์„ค๋ช…์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  • ๊ฐ์ฒด ๊ณต์œ (Object Sharing)์™€ maxmemory-policy: LRU์˜ ๊ด€๊ณ„: "maxmemory-policy: LRU ์„ค์ • ์‹œ ๋น„ํ™œ์„ฑํ™”"๋ผ๋Š” ํ‘œํ˜„์€ ๋‹ค์†Œ ๊ทน๋‹จ์ ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ •ํ™•ํžˆ๋Š” Redis 6.x ์ดํ•˜ ๋ฒ„์ „์—์„œ LRU/LFU ์ •์ฑ…์€ ๊ฐ์ฒด์˜ ์ ‘๊ทผ ์‹œ๊ฐ„(LRU) ๋˜๋Š” ์ ‘๊ทผ ๋นˆ๋„(LFU)๋ฅผ ๊ธฐ๋กํ•˜๊ธฐ ์œ„ํ•œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š”๋ฐ, ๊ณต์œ ๋˜๋Š” ์ •์ˆ˜ ๊ฐ์ฒด๋“ค์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋ถˆ๋ณ€(immutable)ํ•˜๊ฒŒ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. ์ด ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋กํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ์ฒด๊ฐ€ ๋ณ€๊ฒฝ๋˜๋ฉด ๊ณต์œ ์˜ ์ด์ ์ด ์‚ฌ๋ผ์ง€๋ฏ€๋กœ, ํŠน์ • ์ƒํ™ฉ์—์„œ ๊ณต์œ  ๊ฐ์ฒด๊ฐ€ ํ•ด์ œ๋˜๊ฑฐ๋‚˜ ์žฌ์‚ฌ์šฉ ํšจ์œจ์ด ๋–จ์–ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Redis 7.0 ์ดํ›„ ๋ฒ„์ „์—์„œ๋Š” LRU/LFU์™€ ๊ฐ์ฒด ๊ณต์œ ๊ฐ€ ๋ณด๋‹ค ์œ ์—ฐํ•˜๊ฒŒ ๊ณต์กดํ•˜๋„๋ก ๊ฐœ์„ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋‹จ์ˆœํžˆ '๋น„ํ™œ์„ฑํ™”'๋œ๋‹ค๊ธฐ๋ณด๋‹ค๋Š”, 'ํšจ์œจ์ด ์ €ํ•˜๋˜๊ฑฐ๋‚˜ ํŠน์ • ์ƒํ™ฉ์—์„œ ๊ณต์œ ๊ฐ€ ๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋‹ค' ํ˜น์€ '๋ฒ„์ „์— ๋”ฐ๋ผ ๋™์ž‘ ๋ฐฉ์‹์— ์ฐจ์ด๊ฐ€ ์žˆ๋‹ค' ์ •๋„๋กœ ๋‰˜์•™์Šค๋ฅผ ์กฐ์ ˆํ•˜๋Š” ๊ฒƒ์ด ๋” ์ •ํ™•ํ•ฉ๋‹ˆ๋‹ค.
  • Active Defrag์˜ ๋™์ž‘ ๋ฐฉ์‹ ๋ณด์ถฉ: Active Defrag ๊ธฐ๋Šฅ์ด CPU ์ž์›์„ ์†Œ๋ชจํ•  ์ˆ˜ ์žˆ์Œ์„ ๊ฒฝ๊ณ ํ•œ ๊ฒƒ์€ ๋งž์ง€๋งŒ, ์ด ๊ธฐ๋Šฅ์ด Redis์˜ ๋ฉ”์ธ ์Šค๋ ˆ๋“œ๋ฅผ ๋ธ”๋กํ•˜์ง€ ์•Š๊ณ  ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ์ ์ง„์ ์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์žฌ๊ตฌ์„ฑํ•œ๋‹ค๋Š” ์ ์„ ํ•จ๊ป˜ ์–ธ๊ธ‰ํ•˜๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์šด์˜ ์ค‘์ธ ์„œ๋น„์Šค์— ๋ฏธ์น˜๋Š” ์ง์ ‘์ ์ธ ์˜ํ–ฅ(๋ธ”๋กœํ‚น)์— ๋Œ€ํ•œ ์˜คํ•ด๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

4. ์ถ”๊ฐ€์ ์œผ๋กœ ํ•™์Šตํ•˜๋ฉด ์ข‹์„ ๊ฒƒ๋“ค

  • Redis Persistence (AOF, RDB) ์‹ฌ์ธต ๋ถ„์„: ํ•™์Šต ๋‚ด์šฉ์—์„œ ์–ธ๊ธ‰๋œ Time Event์˜ ์ผ๋ถ€์ธ AOF(Append Only File)์™€ RDB(Redis Database) ์Šค๋ƒ…์ƒท์˜ ์ƒ์„ธ ๋™์ž‘ ์›๋ฆฌ, ์žฅ๋‹จ์ , ๊ทธ๋ฆฌ๊ณ  ์‹ค์ œ ๋ณต๊ตฌ ์‹œ๋‚˜๋ฆฌ์˜ค๋ณ„ ๋ฐ์ดํ„ฐ ์œ ์‹ค ๊ฐ€๋Šฅ์„ฑ ๋ฐ ๋ณต๊ตฌ ์ „๋žต์— ๋Œ€ํ•ด ๊นŠ์ด ํ•™์Šตํ•˜๋Š” ๊ฒƒ์€ ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค.
  • Redis Sentinel ๋ฐ Cluster ์ƒ์„ธ ๋™์ž‘: ๊ณ ๊ฐ€์šฉ์„ฑ(HA)๊ณผ ์ˆ˜ํ‰ ํ™•์žฅ(Sharding)์„ ์œ„ํ•œ Redis Sentinel๊ณผ Redis Cluster์˜ ๋‚ด๋ถ€ ๋ฉ”์ปค๋‹ˆ์ฆ˜, quorum, failover ๊ณผ์ •, ๊ทธ๋ฆฌ๊ณ  ๋„คํŠธ์›Œํฌ ๋ถ„ํ• (Split-Brain) ๋ฌธ์ œ์™€ ๊ทธ ํ•ด๊ฒฐ์ฑ…์— ๋Œ€ํ•ด ์‹ฌ์ธต์ ์œผ๋กœ ์ดํ•ดํ•˜๋ฉด ๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ ์šด์˜์— ํฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.
  • Redis Latency Monitoring ๋ฐ ์ตœ์ ํ™”: redis-cli --latency, LATENCY DOCTOR, MONITOR ๋“ฑ์˜ ๋„๊ตฌ๋ฅผ ํ™œ์šฉํ•˜์—ฌ Redis์˜ ์‘๋‹ต ์ง€์—ฐ์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ , Slow Log ๋ถ„์„์„ ํ†ตํ•ด ์„ฑ๋Šฅ ๋ณ‘๋ชฉ์„ ์ฐพ์•„๋‚ด๊ณ  ์ตœ์ ํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ํ•™์Šตํ•˜๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค.
  • Lua Scripting์„ ํ†ตํ•œ ์›์ž์  ์—ฐ์‚ฐ: Redis๋Š” Lua ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์„œ๋ฒ„ ์ธก์—์„œ ์‹คํ–‰ํ•˜์—ฌ ์—ฌ๋Ÿฌ ๋ช…๋ น์„ ํ•˜๋‚˜์˜ ํŠธ๋žœ์žญ์…˜์ฒ˜๋Ÿผ ์›์ž์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ณ  ๋„คํŠธ์›Œํฌ ์™•๋ณต(RTT)์„ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณต์žกํ•œ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ Redis ๋‚ด๋ถ€์—์„œ ํšจ์œจ์ ์œผ๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ํ•™์Šตํ•˜๋ฉด ์ข‹์Šต๋‹ˆ๋‹ค.
  • ๋ณด์•ˆ ๊ณ ๋ ค์‚ฌํ•ญ: Redis๋Š” ๊ธฐ๋ณธ ์„ค์ •์ด ๋ณด์•ˆ์— ์ทจ์•ฝํ•œ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. AUTH ๋ช…๋ น์–ด, TLS/SSL ์ ์šฉ, ACL (Access Control List), ๋„คํŠธ์›Œํฌ ๋ฐฉํ™”๋ฒฝ ์„ค์ • ๋“ฑ ์šด์˜ ํ™˜๊ฒฝ์—์„œ Redis์˜ ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ•˜๊ธฐ ์œ„ํ•œ ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ํ•™์Šตํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.
  • Memory Eviction Policy ์‹ฌํ™”: maxmemory-policy์˜ ๊ฐ ์˜ต์…˜(LRU, LFU, volatile-ttl ๋“ฑ)์ด ๋ฐ์ดํ„ฐ์— ์ •ํ™•ํžˆ ์–ด๋–ป๊ฒŒ ์ ์šฉ๋˜๋Š”์ง€, ๊ทธ๋ฆฌ๊ณ  maxmemory-samples์™€ ๊ฐ™์€ ์„ค์ •์ด ์บ์‹ฑ ํšจ์œจ์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ์— ๋Œ€ํ•ด ๋” ๊นŠ์ด ์ดํ•ดํ•˜๋ฉด Redis๋ฅผ ์บ์‹œ๋กœ ์‚ฌ์šฉํ•  ๋•Œ ์ตœ์ ์˜ ์ „๋žต์„ ์ˆ˜๋ฆฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions