Redis ๋‹ค๋ฅธ ํฌํŠธ๋กœ ์„ค์น˜ํ•˜๊ธฐ

    2023.05.16 - [๐ŸŒ ์ธํ”„๋ผ/๋ชจ๋‹ˆํ„ฐ๋ง] - Prometheus + Grafana๋กœ Redis ๋ชจ๋‹ˆํ„ฐ๋ง ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„์˜ ๊ณผ์ œ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ ํ•œ ์ธ์Šคํ„ด์Šค์— ๊ฐ๊ฐ ๋‹ค๋ฅธ ๋ฒ„์ „์˜ Redis๋ฅผ ์„ค์น˜ํ•ด์ฃผ์–ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. Redis์˜ ๊ธฐ๋ณธ ํฌํŠธ๋Š” 6379์ด๊ธฐ ๋•Œ๋ฌธ์—, ๋‘ Redis์˜ ํฌํŠธ๊ฐ€ ๊ฒน์น˜์ง€ ์•Š๋„๋ก ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ๋ณ€๊ฒฝํ•ด ์„ค์น˜๋˜๋„๋ก ์ง„ํ–‰ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค! ์•„๋ž˜ ๊ณผ์ •๋Œ€๋กœ ์ง„ํ–‰ํ•ด์ค๋‹ˆ๋‹ค. # Redis ์†Œ์Šค ์ฝ”๋“œ ๋‹ค์šด๋กœ๋“œ ๋ฐ ์••์ถ• ํ•ด์ œ $ wget http://download.redis.io/releases/redis-x.x.x.tar.gz $ tar xzf redis-x.x.x.tar.gz $ cd redis-x.x.x # redis.conf ํŒŒ์ผ ์—ด๊ณ  ํฌํŠธ ๋ฒˆํ˜ธ ๋ณ€๊ฒฝ $ vi redis.conf # port 6379 ->..

    Redis warning ์—†์ด ๊น”๋”ํ•˜๊ฒŒ ๋„์šฐ๊ธฐ

    2023.01.25 - [๐ŸŒ ์ธํ”„๋ผ/NHN Cloud] - NHN Cloud ์ธ์Šคํ„ด์Šค์— Redis ์„ค์น˜ํ•˜๊ธฐ (1) - ์••์ถ•ํŒŒ์ผ ์ด์šฉ 2023.02.08 - [๐Ÿ’ป ํ”„๋กœ๊ทธ๋ž˜๋ฐ/Shell] - Redis ์„ค์น˜ ์ž๋™ํ™” ์Šคํฌ๋ฆฝํŠธ (1) - binary ๋ฐฉ์‹ ์œ„์˜ ํฌ์ŠคํŒ…์„ ์ด์šฉํ•ด์„œ Redis๋ฅผ ์„ค์น˜ํ–ˆ์„ ๋•Œ ์ดˆ๊ธฐ ์‹คํ–‰ ํ™”๋ฉด์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ญ”๊ฐ€ ๊น”๋”ํ•˜์ง€ ์•Š๊ณ  ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฉ”์‹œ์ง€๋“ค์ด ๋– ์žˆ๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Warning: no config file specified, using the default config. In order to specify a config file use src/redis-server /path/to/redis.conf WARNING: The TCP backlog setting of 51..

    [Redis] ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ธฐ! (8) - ACL

    ACL Access Control List์˜ ์ค„์ž„๋ง๋กœ redis 6๋ถ€ํ„ฐ ๋„์ž…๋œ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ๋‹ค๋ฅธ RDBMS(MySQL, Oracle ๋“ฑ)์—๋Š” ์œ ์ €๋ณ„๋กœ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ๋ฒ”์œ„๋ฅผ ์ •ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ redis์—๋Š” ์œ ์ €๋ผ๋Š” ๊ฐœ๋…์ด ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ACL์€ ์œ ์ €๋ฅผ ์„ค์ •ํ•˜๊ณ  ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์ปค๋งจ๋“œ์™€ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ํ‚ค ์ธก๋ฉด์—์„œ ํŠน์ • ์—ฐ๊ฒฐ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค. # 1 ACL SETUSER alice on >p1pp0 ~cached:* +get # 2 AUTH alice p1pp0 #1 : alice ๋ผ๋Š” user๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. ์ด๋ฆ„ ํŒจ์Šค์›Œ๋“œ : p1pp0 ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ํ‚ค ํŒจํ„ด : cached ๋กœ ์‹œ์ž‘ํ•˜๋Š” key๋“ค์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค. (allkeys : ๋ชจ๋“  ํ‚ค์— ์ ‘๊ทผ ๊ฐ€๋Šฅ) ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์ปค๋งจ๋“œ : ์ ‘๊ทผํ•  ๋•Œ๋Š” get ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ..

    [Redis] ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ธฐ! (7) - Pub/Sub

    Pub/Sub - ๋ฉ”์‹œ์ง€ ๋ธŒ๋กœ์ปค Pub/Sub์€ Publish/Subscribe์˜ ์ค„์ž„๋ง์ž…๋‹ˆ๋‹ค. ๋‹จ์–ด ์ž์ฒด์— ๊ตฌ๋…/๊ฒŒ์‹œ๋ผ๋Š” ๋œป์ด ์žˆ๋“ฏ์ด Redis์—์„œ Pub/Sub ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ฉด ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ฑ„๋„์„ ํ†ตํ•ด ๋ฉ”์‹œ์ง€๋ฅผ ์ฃผ๊ณ ๋ฐ›์Œ์œผ๋กœ์จ ์„œ๋กœ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ตฌ์กฐ ํด๋ผ์ด์–ธํŠธ๋Š” ํ•˜๋‚˜์˜ Topic์„ "Sub"ํ•˜๊ณ , ํ•ด๋‹น ํ† ํ”ฝ์„ "Sub"ํ•œ ๋‹ค๋ฅธ ๋ชจ๋“  ํด๋ผ์ด์–ธํŠธ๋Š” ํ•ด๋‹น Topic์—์„œ "Pub"๋˜๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ์ˆ˜์‹ ํ•ฉ๋‹ˆ๋‹ค. Topic์ด๋ผ๋Š” ๋งค๊ฐœ์ฒด๋ฅผ ํ†ตํ•ด์„œ ๋ฉ”์‹œ์ง€๋ฅผ ์ „๋‹ฌํ•˜๋ฏ€๋กœ ์ˆ˜์‹ ์ž์™€ ๋ฐœ์‹ ์ž๊ฐ€ ์„œ๋กœ๋ฅผ ์•Œ์ง€ ๋ชปํ•˜๋”๋ผ๋„ ๋ฉ”์‹œ์ง€๋ฅผ ์†ก์ˆ˜์‹ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠน์ง• ๋ฉ”์‹œ์ง€๋Š” Redis์— ์ €์žฅ๋˜์ง€ ์•Š๊ณ  ์ฑ„๋„์„ ๊ตฌ๋…ํ•˜๋Š” ํด๋ผ์ด์–ธํŠธ์— ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ „์†ก๋œ๋‹ค๋Š” ์ ์— ์œ ์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ „๋‹ฌ๋˜๋ฉด ์ด๋ฅผ ๋ฐ”๋กœ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ์‹œ ์ด๋ฅผ ํ†ต..

    [Redis] ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ธฐ! (6) - ํ™œ์šฉ ์˜ˆ์ œ์™€ ์žฅ์•  ํฌ์ธํŠธ

    ํ™œ์šฉ ์˜ˆ์ œ Counting Strings ๋‹จ์ˆœ ์ฆ๊ฐ ์—ฐ์‚ฐ INCR / INCRBY / INCRBYFLOAT / HINCRBY / HINCRBYFLOAT / ZINCRBY Bits ๋ฐ์ดํ„ฐ ์ €์žฅ๊ณต๊ฐ„ ์ ˆ์•ฝ ์ •์ˆ˜๋กœ ๋œ ๋ฐ์ดํ„ฐ๋งŒ ์นด์šดํŒ… ๊ฐ€๋Šฅ userid ๊ฐ’์ด 0 ์ด์ƒ์˜ ์ •์ˆ˜๊ฐ’์ผ ๋•Œ๋งŒ ์นด์šดํŒ…์ด ๊ฐ€๋Šฅ ์‹œํ€€์…œํ•œ ๊ฐ’์ด ์—†์„ ๋•Œ์—๋Š” ์‚ฌ์šฉ ๋ถˆ๊ฐ€ SETBIT / BITCOUNT HyperLogLogs ๋Œ€๋Ÿ‰์˜ ์œ ๋‹ˆํฌํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์นด์šดํŒ…ํ•  ๋•Œ ์ ์ ˆ set๊ณผ ๋น„์Šทํ•˜์ง€๋งŒ ์ €์žฅ๋˜๋Š” ์šฉ๋Ÿ‰์ด ๋งค์šฐ ์ž‘์Œ ์›น์‚ฌ์ดํŠธ์— ๋ฐฉ๋ฌธํ•œ ์œ ๋‹ˆํฌํ•œ IP ์ˆ˜ / ํ•˜๋ฃจ ์ข…์ผ ํฌ๋กค๋งํ•œ URL ์ˆ˜ / ๊ฒ€์ƒ‰์—”์ง„์—์„œ ๊ฒ€์ƒ‰๋œ ์œ ๋‹ˆํฌํ•œ ๋‹จ์–ด ์ˆ˜ PFADD / PFCOUNT / PFMERGE Messaging Lists ์ž์ฒด์ ์œผ๋กœ blocking ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ด์„œ Event ..

    [Redis] ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ธฐ! (5) - ์•„ํ‚คํ…์ฒ˜

    Replication replicaof ์ปค๋งจ๋“œ๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋ณต์ œ ์—ฐ๊ฒฐ ๋น„๋™๊ธฐ์‹ ๋ณต์ œ Master๊ฐ€ ๋‹ค์šด๋˜๋”๋ผ๋„ Replica๊ฐ€ ์„œ๋น„์Šค๋ฅผ ๊ณ„์† ํ•  ์ˆ˜ ์žˆ์Œ HA ๊ธฐ๋Šฅ์ด ์—†์œผ๋ฏ€๋กœ ์žฅ์•  ์ƒํ™ฉ ์‹œ ์ˆ˜๋™ ๋ณต๊ตฌ replicaof no one ์„œ๋ฒ„ ๋‹ค์šด์‹œ AOF ๋˜๋Š” RDB๋กœ ์žฌ์‹œ์ž‘ replication ๊ณผ์ •์—์„œ fork๊ฐ€ ๋ฐœ์ƒํ•˜๋ฏ€๋กœ ๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ ๋ฐœ์ƒ ๊ฐ€๋Šฅ ํŠน์ • ์ปค๋งจ๋“œ disable ํ•˜๊ธฐ Sentinel ์„ผํ‹ฐ๋„์€ ์ผ๋ฐ˜ ๋…ธ๋“œ๋“ค์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ชจ๋‹ˆํ„ฐ๋ง(monitoring)ํ•˜๋Š” ์—ญํ•  ์ž๋™ ํŽ˜์ผ์˜ค๋ฒ„ ๊ฐ€๋Šฅํ•œ HA ๊ตฌ์„ฑ ๋งˆ์Šคํ„ฐ๊ฐ€ ๋น„์ •์ƒ์ด๋ฉด ์ž๋™ ํŽ˜์ผ์˜ค๋ฒ„(Automatic Failover) ์—ฐ๊ฒฐ ์ •๋ณด ๋ณ€๊ฒฝ ํ•„์š” ์—†์Œ ์„ผํ‹ฐ๋„ ๋…ธ๋“œ๋Š” ํ•ญ์ƒ 3๋Œ€ ์ด์ƒ, ํ™€์ˆ˜๋กœ ์กด์žฌํ•ด์•ผ ํ•จ ๊ณผ๋ฐ˜์ˆ˜ ์ด์ƒ์˜ ์„ผํ‹ฐ๋„์ด ๋™์˜ํ•ด์•ผ ํŽ˜์ผ์˜ค๋ฒ„ ์ง„ํ–‰ ์˜ˆ) ๋„คํŠธ์›Œํฌ์˜ ์ž ..

    [Redis] ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ธฐ! (4) - ์˜์†์„ฑ

    ๋ฐ์ดํ„ฐ ์šด์˜๊ณผ ๊ด€๋ จ๋œ ๊ฒƒ์œผ๋กœ redis์— ๋ฐ์ดํ„ฐ๋ฅผ ์˜๊ตฌ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” 2๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค. Redis๋Š” In-memory ๋ฐ์ดํ„ฐ ์Šคํ† ์–ด ์„œ๋ฒ„ ์žฌ์‹œ์ž‘ ์‹œ ๋ชจ๋“  ๋ฐ์ดํ„ฐ ์œ ์‹ค ๋ณต์ œ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•ด๋„ ์‚ฌ๋žŒ์˜ ์‹ค์ˆ˜ ๋ฐœ์ƒ ์‹œ ๋ฐ์ดํ„ฐ ๋ณต์› ๋ถˆ๊ฐ€ Redis๋ฅผ ์บ์‹œ ์ด์™ธ์˜ ์šฉ๋„๋กœ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ์ ์ ˆํ•œ ๋ฐ์ดํ„ฐ ๋ฐฑ์—… ํ•„์š” AOF Append Only File ๋ฐฉ์‹ ๋ชจ๋“  write/update ์ปค๋งจ๋“œ๋ฅผ log ํŒŒ์ผ์— ๊ธฐ๋กํ•˜๋Š” ํ˜•ํƒœ redis ํ”„๋กœํ† ์ฝœ ํ˜•ํƒœ๋กœ ์ €์žฅ RDB snapshot ๋ฐฉ์‹ ์ˆœ๊ฐ„์ ์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ์— ์žˆ๋Š” ๋‚ด์šฉ์„ disk์— ์˜ฎ๊ฒจ๋‹ด๋Š” ๋ฐฉ์‹ ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ ํ˜•ํƒœ๋กœ ์ €์žฅ AOF vs RDB ์„ ํƒ ๊ธฐ์ค€ redis๋ฅผ ์บ์‹œ๋กœ๋งŒ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ๋‘˜ ๋‹ค ์“ธ ํ•„์š” ์—†๋‹ค. 1. ๋ฐฑ์—…์€ ํ•„์š”ํ•˜์ง€๋งŒ ์–ด๋Š ์ •๋„ ๋ฐ์ดํ„ฐ ์†์‹ค์ด ๋ฐœ์ƒํ•ด๋„ ๊ดœ์ฐฎ์€ ๊ฒฝ์šฐ ..

    [Redis] ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ธฐ! (3) - ์บ์‹ฑ ์ „๋žต

    ๋ฐ์ดํ„ฐ ์œ ํ˜•๊ณผ ํ•ด๋‹น ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ํŒจํ„ด์„ ์ž˜ ๊ณ ๋ คํ•ด์„œ ์„ ํƒํ•ด์•ผ ํ•œ๋‹ค. ์ฝ๊ธฐ ์ „๋žต Look-Aside(Lazy Loading) ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๋Š” ์ž‘์—…์ด ๋งŽ์„ ๋•Œ ์‚ฌ์šฉ (๊ฐ€์žฅ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•) Cache Hit ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•œ๋‹ค. ๋จผ์ € cache ์„œ๋ฒ„(redis)๋ฅผ ํ™•์ธํ•œ๋‹ค. cache์— ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์œผ๋ฉด DB๋ฅผ ์กฐํšŒํ•˜์ง€ ์•Š๊ณ  cache์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค. (Cache Hit) Cache Miss ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•œ๋‹ค. ๋จผ์ € cache ์„œ๋ฒ„(redis)๋ฅผ ํ™•์ธํ•œ๋‹ค. cache ์„œ๋ฒ„์— ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์œผ๋ฉด DB๋ฅผ ์กฐํšŒํ•˜์—ฌ cache ์„œ๋ฒ„์— ์ €์žฅํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. (Cache Miss) Lazy Loading cache๋Š” ์ฐพ๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์„ ๋•Œ์—๋งŒ ์ž…๋ ฅ๋˜๊ธฐ ๋•Œ๋ฌธ์— lazy loading์ด๋ผ๊ณ ..

    [Redis] ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ธฐ! (2) - ๋ฐ์ดํ„ฐ ํƒ€์ž…

    Redis๋Š” ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ํƒ€์ž…๊ณผ ๋ฐ์ดํ„ฐ ํƒ€์ž…๋ณ„ ์ปค๋งจ๋“œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Key ์„ค์ • ํฌ์ธํŠธ Key๋Š” ๋ฌธ์ž์—ด์ด๋ฏ€๋กœ ์ตœ๋Œ€ 512MB๊นŒ์ง€ ๊ฐ€๋Šฅ ๊ธธ์ด ๋“ฑ ๊ฐ€๋…์„ฑ์„ ๊ณ ๋ คํ•ด์•ผํ•˜๊ณ , ์Šคํ‚ค๋งˆ๋ฅผ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„ํ•  ๊ฒƒ ex) user:1000:followers Strings ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ Redis ๋ฐ์ดํ„ฐ ์œ ํ˜• ํ…์ŠคํŠธ, ์ง๋ ฌํ™”๋œ ๊ฐœ์ฒด ๋ฐ ์ด์ง„ ๋ฐฐ์—ด์„ ํฌํ•จํ•œ ๋ฐ”์ดํŠธ ์‹œํ€€์Šค๋ฅผ ์ €์žฅ, ์ด๋ฏธ์ง€ ์ €์žฅ ๊ฐ€๋Šฅ ์บ์‹ฑ์— ์ž์ฃผ ์‚ฌ์šฉ๋˜์ง€๋งŒ ์นด์šดํ„ฐ๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ , ๋น„ํŠธ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ๋„ ์ œ๊ณต ๋‹จ์ผ ๋ฌธ์ž์—ด์€ ์ตœ๋Œ€ 512MB ์˜ˆ ๋ฌธ์ž์—ด ์ €์žฅํ•˜๊ณ  ๊ฒ€์ƒ‰ > SET user:1 minju OK > GET user:1 "minju" ์ง๋ ฌํ™”๋œ JSON ๋ฌธ์ž์—ด ์ €์žฅํ•˜๊ณ  ์ง€๊ธˆ๋ถ€ํ„ฐ 100์ดˆ ํ›„์— ๋งŒ๋ฃŒ๋˜๋„๋ก ์„ค์ • > SET ticket:27 "\"..

    [Redis] ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ธฐ! (1) - ๊ฐœ๋… ๋ฐ ํŠน์ง•

    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๋Š” remot..