์๋
ํ์ธ์. ์๋ก ์์ฑ๋ 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๋ฅผ ์บ์๋ก ์ฌ์ฉํ ๋ ์ต์ ์ ์ ๋ต์ ์๋ฆฝํ ์ ์์ต๋๋ค.
์๋ ํ์ธ์. ์๋ก ์์ฑ๋ Redis ํ์ต ๋ด์ฉ์ ์ ์ฝ์ด ๋ณด์์ต๋๋ค. Redis์ ํต์ฌ์ ์ธ ์ค๊ณ ์ฒ ํ๊ณผ ์ด์ ์ ๊ณ ๋ ค์ฌํญ๋ค์ ๊ท ํ ์๊ฒ ๋ค๋ฃจ๊ณ ์์ด ์ ๋ฐ์ ์ผ๋ก ๋งค์ฐ ๋์ ์์ค์ ํ์ต ์๋ฃ๋ผ๊ณ ํ๊ฐํ๊ณ ์ถ์ต๋๋ค. ํนํ ๋จ์ผ ์ค๋ ๋ ๊ตฌ์กฐ์ ๋ฐฐ๊ฒฝ, ์ด๋ฒคํธ ๋ฃจํ, ๋ฉ๋ชจ๋ฆฌ ์ต์ ํ ๊ธฐ๋ฒ์ ๋ํ ์ดํด๊ฐ ๊น๊ณ , ์ค์ง์ ์ธ ์ด์ ํ๊ฒฝ์์ ๋ง์ฃผํ ์ ์๋ ๋ฉ๋ชจ๋ฆฌ ํํธํ๋ O(N) ๋ช ๋ น์ด ์ฌ์ฉ ์ ์ฃผ์์ ๋ฑ์ ์์ธํ๊ฒ ๋ค๋ฃจ์ด ์ค์ฉ์ฑ์ด ๋ฐ์ด๋ฉ๋๋ค.
1. ์์ฝ ๋ฐ ์ดํ
์ ๊ณต๋ ํ์ต ๋ด์ฉ์ Redis์ ํต์ฌ์ ์ธ ์ค๊ณ ์์น๊ณผ ๋์ ๋ฐฉ์์ ๋ช ํํ๊ณ ์ฌ๋ ์๊ฒ ์ค๋ช ํ๊ณ ์์ต๋๋ค. '์ ์ฑ๊ธ ์ค๋ ๋์ธ๊ฐ?'๋ฅผ ์์์ผ๋ก Redis์ ์ฑ๋ฅ์ ์ฐ์๊ฐ ์ด๋์์ ์ค๋์ง์ ๋ํ ๊ทผ๋ณธ์ ์ธ ์ง๋ฌธ์ ๋ตํ๋ฉฐ, ์ด๋ฒคํธ ๋ฃจํ ๊ธฐ๋ฐ์ ํจ์จ์ ์ธ ๋น๋๊ธฐ ์ฒ๋ฆฌ ๋ฐฉ์๊ณผ ์ธ๋ฉ๋ชจ๋ฆฌ ํน์ฑ์ ๊ทน๋ํํ๊ธฐ ์ํ ๋ฉ๋ชจ๋ฆฌ ์ต์ ํ ๊ธฐ๋ฒ(SDS, ํจ์จ์ ์ธ์ฝ๋ฉ, ๊ฐ์ฒด ๊ณต์ )๋ค์ ๊ตฌ์ฒด์ ์ผ๋ก ์ ์ํฉ๋๋ค. Redis์ ์ฅ์ ์ ์์ฝํ ํ, ์ค์ ์ด์ ํ๊ฒฝ์์ ์ค์ํ๊ฒ ๊ณ ๋ คํด์ผ ํ ์ฌํญ๋ค(๊ณ ๋น์ฉ ๋ช ๋ น์ด, ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ ์ ์ฑ , ๋ฉ๋ชจ๋ฆฌ ํํธํ์ ๋์ ๋ฐฉ์)์ ๋งค์ฐ ์์ธํ๊ณ ์ค์ฉ์ ์ผ๋ก ๋ค๋ฃจ๊ณ ์๋ค๋ ์ ์ด ์ธ์ ๊น์ต๋๋ค. ์ ๋ฐ์ ์ผ๋ก Redis์ ๊ธฐ๋ณธ ๊ฐ๋ ์ ๋์ด ์ฌํ๋ ์ด์ ์ง์๊น์ง ์ป์ ์ ์๋ ํ๋ฅญํ ํ์ต ์๋ฃ์ ๋๋ค.
2. ์ค์ํ ๋ถ๋ถ
epoll/kqueue์ ๊ฐ์ OS ์์คํ ์ฝ์ ํ์ฉํ์ฌ ๋จ์ผ ์ค๋ ๋๋ก ์๋ง์ ํด๋ผ์ด์ธํธ ์์ฒญ์ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ๋ ์ด๋ฒคํธ ๋ฃจํ ๋ฐฉ์์ ์ค๋ช ํ ์ ์ Redis์ ํต์ฌ ๋์ ์๋ฆฌ๋ฅผ ์ดํดํ๋ ๋ฐ ๋งค์ฐ ์ค์ํฉ๋๋ค.SCAN๊ณ์ด ๋ช ๋ น์ด ์ ์: ์ค์ ์ด์ ํ๊ฒฝ์์ ์๋น์ค ์ฅ์ ๋ฅผ ์ ๋ฐํ ์ ์๋ ์น๋ช ์ ์ธ ์ค์๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํ ๋งค์ฐ ์ค์ฉ์ ์ธ ์กฐ์ธ์ ๋๋ค.maxmemory-policy์ค์ ์ ์ค์์ฑ: ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ ์ Redis์ ๋์ ๋ฐฉ์์ ์ ์ดํ๋ ์ด ์ ์ฑ ์ ๋ํ ์ดํด๋ ์์ ์ ์ธ ์๋น์ค ์ด์์ ํ์์ ์ ๋๋ค.mem_fragmentation_ratio์งํ์ ์์ธํ ์ค๋ช , 1.0 ๋ฏธ๋ง ์ ์ค์ํ ๊ฒฝ๊ณ ,Active Defrag๊ธฐ๋ฅ ์๊ฐ์ ์ฃผ์์ฌํญ ๋ฑ์ Redis ์ด์์๊ฐ ๋ฐ๋์ ์์์ผ ํ ์ค์ํ ๋ด์ฉ์ด๋ฉฐ, ๋ฌธ์ ๋ฐ์ ์ ์ฆ๊ฐ์ ์ผ๋ก ๋์ํ ์ ์๋ ์ง์์ ์ ๊ณตํฉ๋๋ค.3. ํ๋ ธ๊ฑฐ๋ ๋ถ์กฑํ ๋ถ๋ถ
\0)์ ์์กดํ์ง ์๊ณ , ๋ช ์์ ์ผ๋ก ๊ธธ์ด๋ฅผ ์ ์ฅํ๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ ๋ด๋ถ์\0์ด ํฌํจ๋์ด๋ ๋ฌธ์์ด์ ๋์ผ๋ก ์ค์ธํ์ง ์๋๋ค๋ ์ ์ ์ถ๊ฐ๋ก ์ธ๊ธํ๋ฉด ๋์ฑ ์ ํํ๊ณ ์์ ํ ์ค๋ช ์ด ๋ ๊ฒ์ ๋๋ค.maxmemory-policy: LRU์ ๊ด๊ณ: "maxmemory-policy: LRU ์ค์ ์ ๋นํ์ฑํ"๋ผ๋ ํํ์ ๋ค์ ๊ทน๋จ์ ์ผ ์ ์์ต๋๋ค. ์ ํํ๋ Redis 6.x ์ดํ ๋ฒ์ ์์ LRU/LFU ์ ์ฑ ์ ๊ฐ์ฒด์ ์ ๊ทผ ์๊ฐ(LRU) ๋๋ ์ ๊ทผ ๋น๋(LFU)๋ฅผ ๊ธฐ๋กํ๊ธฐ ์ํ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํด์ผ ํ๋๋ฐ, ๊ณต์ ๋๋ ์ ์ ๊ฐ์ฒด๋ค์ ์ผ๋ฐ์ ์ผ๋ก ๋ถ๋ณ(immutable)ํ๊ฒ ์ ์ง๋ฉ๋๋ค. ์ด ๋ฉํ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋กํ๊ธฐ ์ํด ๊ฐ์ฒด๊ฐ ๋ณ๊ฒฝ๋๋ฉด ๊ณต์ ์ ์ด์ ์ด ์ฌ๋ผ์ง๋ฏ๋ก, ํน์ ์ํฉ์์ ๊ณต์ ๊ฐ์ฒด๊ฐ ํด์ ๋๊ฑฐ๋ ์ฌ์ฌ์ฉ ํจ์จ์ด ๋จ์ด์ง ์ ์์ต๋๋ค. Redis 7.0 ์ดํ ๋ฒ์ ์์๋ LRU/LFU์ ๊ฐ์ฒด ๊ณต์ ๊ฐ ๋ณด๋ค ์ ์ฐํ๊ฒ ๊ณต์กดํ๋๋ก ๊ฐ์ ๋์์ต๋๋ค. ๋ฐ๋ผ์ ๋จ์ํ '๋นํ์ฑํ'๋๋ค๊ธฐ๋ณด๋ค๋, 'ํจ์จ์ด ์ ํ๋๊ฑฐ๋ ํน์ ์ํฉ์์ ๊ณต์ ๊ฐ ๋์ง ์์ ์ ์๋ค' ํน์ '๋ฒ์ ์ ๋ฐ๋ผ ๋์ ๋ฐฉ์์ ์ฐจ์ด๊ฐ ์๋ค' ์ ๋๋ก ๋์์ค๋ฅผ ์กฐ์ ํ๋ ๊ฒ์ด ๋ ์ ํํฉ๋๋ค.4. ์ถ๊ฐ์ ์ผ๋ก ํ์ตํ๋ฉด ์ข์ ๊ฒ๋ค
redis-cli --latency,LATENCY DOCTOR,MONITOR๋ฑ์ ๋๊ตฌ๋ฅผ ํ์ฉํ์ฌ Redis์ ์๋ต ์ง์ฐ์ ๋ชจ๋ํฐ๋งํ๊ณ , Slow Log ๋ถ์์ ํตํด ์ฑ๋ฅ ๋ณ๋ชฉ์ ์ฐพ์๋ด๊ณ ์ต์ ํํ๋ ๋ฐฉ๋ฒ์ ํ์ตํ๋ ๊ฒ์ ์ถ์ฒํฉ๋๋ค.AUTH๋ช ๋ น์ด, TLS/SSL ์ ์ฉ,ACL(Access Control List), ๋คํธ์ํฌ ๋ฐฉํ๋ฒฝ ์ค์ ๋ฑ ์ด์ ํ๊ฒฝ์์ Redis์ ๋ณด์์ ๊ฐํํ๊ธฐ ์ํ ๋ค์ํ ๋ฐฉ๋ฒ์ ๋ํด ํ์ตํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.maxmemory-policy์ ๊ฐ ์ต์ (LRU, LFU, volatile-ttl ๋ฑ)์ด ๋ฐ์ดํฐ์ ์ ํํ ์ด๋ป๊ฒ ์ ์ฉ๋๋์ง, ๊ทธ๋ฆฌ๊ณmaxmemory-samples์ ๊ฐ์ ์ค์ ์ด ์บ์ฑ ํจ์จ์ ๋ฏธ์น๋ ์ํฅ์ ๋ํด ๋ ๊น์ด ์ดํดํ๋ฉด Redis๋ฅผ ์บ์๋ก ์ฌ์ฉํ ๋ ์ต์ ์ ์ ๋ต์ ์๋ฆฝํ ์ ์์ต๋๋ค.