10๋ ์ด ๋๋ ์๊ฐ ๋์ ๊ฐ๋ฐํด์จ ์ ํ์ ์๊ฐํด๋ณด๋ฉด, ๊ทธ ์์์ ๋ก์ ๊ธฐ์ ์ด ๋ฐ๊ฒฌ๋๋ ๊ฒ์ ์ ํ ๋๋ผ์ด ์ผ์ด ์๋๋๋ค. ํ์ง๋ง XNUMX๊ฐ์ ์์ ํ์ค์ XNUMX๋ฐฐ ๋ ๋๊ฒ ์ ์งํด์ผ ํ๊ณ , ์ถ๋ฝ์ผ๋ก ์ธํ ๋น์ฉ์ด ์๋ฐฑ ๋ฐฐ ์ฆ๊ฐํ๋ค๋ฉด ์ด๋ป๊ฒ ๋ ๊น์? ์ด ๊ฒฝ์ฐ์๋ ๋ฉ์ง ํ์ด๋ก๋ ์์ง๋์ด๊ฐ ํ์ํฉ๋๋ค. ํ์ง๋ง ๊ฐ์ ๋ถ๊ฐ ์์ผ๋ฉด ๋ฌธ์ ํด๊ฒฐ์ ๋์๊ฒ ๋งก๊ฒผ์ต๋๋ค. ๊ธฐ์ฌ์ ์ฒซ ๋ฒ์งธ ๋ถ๋ถ์์๋ Redis์์ Redis-cluster๋ก ์ด๋ํ ๋ฐฉ๋ฒ์ ์ค๋ช ํ๊ณ , ๋ ๋ฒ์งธ ๋ถ๋ถ์์๋ ํด๋ฌ์คํฐ ์ฌ์ฉ์ ์์ํ๋ ๋ฐฉ๋ฒ๊ณผ ์ฌ์ฉ ์ ์ฃผ์ํ ์ฌํญ์ ๋ํ ์กฐ์ธ์ ์ ๊ณตํฉ๋๋ค.
๊ธฐ์ ์ ํ
๊ทธ๋ ๊ฒ ๋์๊ฐ์? ๋ณ๋์ Redis (๋ ๋ฆฝํ Redis) 1๊ฐ์ ๋ง์คํฐ์ N๊ฐ์ ์ฌ๋ ์ด๋ธ๋ก ๊ตฌ์ฑ๋ฉ๋๊น? ์ ๊ทธ๊ฒ์ ์ธ๋ชจ์๋ ๊ธฐ์ ์ด๋ผ๊ณ ๋ถ๋ฅด๋๊ฐ?
์๋์, Redis๋ ๊ทธ๋ ๊ฒ ๋์์ง๋ ์์ต๋๋ค... ํ์ง๋ง ๋ฌด์ํ ์ ์๋ ๋ช ๊ฐ์ง ๋จ์ ์ด ์์ต๋๋ค.
-
์ฒซ์งธ, Redis๋ ๋ง์คํฐ ์ฅ์ ํ ์ฌํด ๋ณต๊ตฌ ๋ฉ์ปค๋์ฆ์ ์ง์ํ์ง ์์ต๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ฐ๋ฆฌ๋ VIP๋ฅผ ์ ๋ง์คํฐ๋ก ์๋ ์ ์กํ์ฌ ์ฌ๋ ์ด๋ธ ์ค ํ๋์ ์ญํ ์ ๋ณ๊ฒฝํ๊ณ ๋๋จธ์ง๋ฅผ ์ ํํ๋ ๊ตฌ์ฑ์ ์ฌ์ฉํ์ต๋๋ค. ์ด ๋ฉ์ปค๋์ฆ์ ํจ๊ณผ๊ฐ ์์์ง๋ง ์ ๋ขฐํ ์ ์๋ ์๋ฃจ์ ์ด๋ผ๊ณ ํ ์๋ ์์์ต๋๋ค. ์ฒซ์งธ, ํ์ ๊ฒฝ๋ณด๊ฐ ๋ฐ์ํ๊ณ ๋์งธ, ์ผํ์ฉ์ด์๊ณ ์๋ ํ ์คํ๋ง์ ์ถฉ์ ํ๊ธฐ ์ํด ์๋ ์กฐ์น๊ฐ ํ์ํ์ต๋๋ค.
-
๋์งธ, ๋ง์คํฐ๊ฐ ํ๋๋ง ์์ผ๋ฉด ์ค๋ฉ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. ์ฐ๋ฆฌ๋ "1๊ฐ์ ๋ง์คํฐ์ N๊ฐ์ ์ฌ๋ ์ด๋ธ"๋ผ๋ ๋ ๋ฆฝ์ ์ธ ํด๋ฌ์คํฐ๋ฅผ ์ฌ๋ฌ ๊ฐ ์์ฑํ ๋ค์ ์ด๋ฌํ ์์คํ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์๋์ผ๋ก ๋ฐฐํฌํ๊ณ ๋ด์ผ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค ํ๋๊ฐ ๋๋ฌด ๋ง์ด ๋์ด๋์ ๋ณ๋์ ์ธ์คํด์ค๋ก ์ด๋ํด์ผ ํ์ง ์๊ธฐ๋ฅผ ๋ฐ๋์ต๋๋ค.
์ต์ ์ ๋ฌด์์ ๋๊น?
- ๊ฐ์ฅ ๋น์ธ๊ณ ํ๋ถํ ์๋ฃจ์ ์ Redis-Enterprise์ ๋๋ค. ์ด๋ ์์ ํ ๊ธฐ์ ์ง์์ด ํฌํจ๋ ๋ฐ์คํ ์๋ฃจ์ ์ ๋๋ค. ๊ธฐ์ ์ ์ธ ๊ด์ ์์๋ ์ด์์ ์ผ๋ก ๋ณด์ด์ง๋ง ์ด๋ ์ ์ธ ์ด์ ๋ก ์ฐ๋ฆฌ์๊ฒ๋ ์ ํฉํ์ง ์์์ต๋๋ค.
- Redis ํด๋ฌ์คํฐ. ๊ธฐ๋ณธ์ ์ผ๋ก ๋ง์คํฐ ์ฅ์ ์กฐ์น ๋ฐ ์ค๋ฉ์ด ์ง์๋ฉ๋๋ค. ์ธํฐํ์ด์ค๋ ์ผ๋ฐ ๋ฒ์ ๊ณผ ๊ฑฐ์ ๋ค๋ฅด์ง ์์ต๋๋ค. ์ ๋งํด ๋ณด์ด์ง๋ง ๋์ค์ ํจ์ ์ ๋ํด ์ด์ผ๊ธฐํ๊ฒ ์ต๋๋ค.
- Tarantool, Memcache, Aerospike ๋ฑ. ์ด ๋ชจ๋ ๋๊ตฌ๋ ๊ฑฐ์ ๋์ผํ ์์ ์ ์ํํฉ๋๋ค. ๊ทธ๋ฌ๋ ๊ฐ๊ฐ์๋ ๊ณ ์ ํ ๋จ์ ์ด ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋ชจ๋ ๊ณ๋์ ํ ๋ฐ๊ตฌ๋์ ๋ด์ง ์๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋ค๋ฅธ ์์ ์ Memcache์ Tarantool์ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ ์์ผ๋ก ์ค์ ๋ก๋ ๋ ๋ง์ ๋ฌธ์ ๊ฐ ์๋ค๊ณ ๋งํ ๊ฒ์ ๋๋ค.
์ฌ์ฉ ์ธ๋ถ ์ฌํญ
์ญ์ฌ์ ์ผ๋ก Redis๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ค ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ผ๋ฉฐ ์ด๋ค ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋์ง ์ดํด๋ณด๊ฒ ์ต๋๋ค.
- 2GIS์ ๊ฐ์ ์๊ฒฉ ์๋น์ค์ ์์ฒญํ๊ธฐ ์ ์ ์บ์ | ๊ณจ๋
GET SET MGET MSET "SELECT DB"
- MYSQL ์ด์ ์ ์บ์ | PHP
GET SET MGET MSET ์ค์บ "ํค๋ณ ํจํด" "SELECT DB"
- ์ธ์
๋ฐ ๋๋ผ์ด๋ฒ ์ขํ ์์
์๋น์ค๋ฅผ ์ํ ๋ฉ์ธ ์คํ ๋ฆฌ์ง | ๊ณจ๋
GET SET MGET MSET "DB ์ ํ" "GEO ํค ์ถ๊ฐ" "GEO ํค ๊ฐ์ ธ์ค๊ธฐ" ์ค์บ
๋ณด์๋ค์ํผ ๋ ๋์ ์ํ์ ์์ต๋๋ค. ๊ทธ๋ ๋ค๋ฉด ์ด๋ ค์์ ๋ฌด์์ ๋๊น? ๊ฐ ๋ฐฉ๋ฒ์ ๊ฐ๋ณ์ ์ผ๋ก ์ดํด๋ณด๊ฒ ์ต๋๋ค.
๋ฐฉ๋ฒ
๊ธฐ์
Redis ํด๋ฌ์คํฐ์ ํน์ง
๊ฒฐ์
GET SET
์ฐ๊ธฐ/์ฝ๊ธฐ ํค
MGET MSET
์ฌ๋ฌ ํค ์ฐ๊ธฐ/์ฝ๊ธฐ
ํค๋ ๋ค๋ฅธ ๋
ธ๋์ ์์ต๋๋ค. ๊ธฐ์ฑ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ํ๋์ ๋
ธ๋ ๋ด์์๋ง ๋ค์ค ์์
์ ์ํํ ์ ์์ต๋๋ค.
MGET์ N GET ์์
์ ํ์ดํ๋ผ์ธ์ผ๋ก ๋์ฒด
DB ์ ํ
์ฐ๋ฆฌ๊ฐ ์์
ํ ๋ฒ ์ด์ค๋ฅผ ์ ํํ์ธ์
์ฌ๋ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ง์ํ์ง ์์ต๋๋ค
๋ชจ๋ ๊ฒ์ ํ๋์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ด์ผ์ธ์. ํค์ ์ ๋์ฌ ์ถ๊ฐ
์ฃผ์ฌ
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ชจ๋ ํค๋ฅผ ์ดํด๋ณด์ธ์.
๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ํ๋์ด๋ฏ๋ก ํด๋ฌ์คํฐ์ ๋ชจ๋ ํค๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐ ๋น์ฉ์ด ๋๋ฌด ๋ง์ด ๋ญ๋๋ค.
ํ๋์ ํค ๋ด์์ ๋ถ๋ณ์ฑ์ ์ ์งํ๊ณ ์ด ํค์ ๋ํด HSCAN์ ์ํํฉ๋๋ค. ์๋๋ฉด ์์ ํ ๊ฑฐ์ ํ์ธ์.
GEO
Geokey๋ฅผ ์ฌ์ฉํ ์์
Geokey๋ ์ค๋ฉ๋์ง ์์ต๋๋ค.
ํจํด๋ณ ํค
ํจํด์ผ๋ก ํค ๊ฒ์
๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ํ๋์ด๋ฏ๋ก ํด๋ฌ์คํฐ์ ๋ชจ๋ ํค๋ฅผ ๊ฒ์ํฉ๋๋ค. ๋๋ฌด ๋น์ผ
SCAN์ ๊ฒฝ์ฐ์ฒ๋ผ ๋ถ๋ณ์ฑ์ ๊ฑฐ๋ถํ๊ฑฐ๋ ์ ์งํ์ญ์์ค.
Redis ๋ Redis ํด๋ฌ์คํฐ
ํด๋ฌ์คํฐ๋ก ์ ํํ๋ฉด ๋ฌด์์ ์๊ณ ๋ฌด์์ ์ป์ต๋๊น?
- ๋จ์ : ์ฌ๋ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ธฐ๋ฅ์ด ์์ค๋ฉ๋๋ค.
- ๋ ผ๋ฆฌ์ ์ผ๋ก ๊ด๋ จ์ด ์๋ ๋ฐ์ดํฐ๋ฅผ ํ๋์ ํด๋ฌ์คํฐ์ ์ ์ฅํ๋ ค๋ฉด ์ ๋์ฌ ํํ๋ก ๋ชฉ๋ฐ์ ๋ง๋ค์ด์ผ ํฉ๋๋ค.
- SCAN, DBSIZE, CLEAR DB ๋ฑ๊ณผ ๊ฐ์ ๋ชจ๋ "๊ธฐ๋ณธ" ์์ ์ด ์์ค๋ฉ๋๋ค.
- ๋ค์ค ์์ ์ ์ฌ๋ฌ ๋ ธ๋์ ๋ํ ์ก์ธ์ค๊ฐ ํ์ํ ์ ์๊ธฐ ๋๋ฌธ์ ๊ตฌํํ๊ธฐ๊ฐ ํจ์ฌ ๋ ์ด๋ ค์์ก์ต๋๋ค.
- ์ฅ์ :
- ๋ง์คํฐ ์ฅ์ ์กฐ์น ํํ์ ๋ด๊ฒฐํจ์ฑ.
- Redis ์ธก์ ์ค๋ฉ.
- ๊ฐ๋ ์ค์ง ์๊ฐ ์์ด ์์์ ์ผ๋ก ๋ ธ๋ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํฉ๋๋ค.
- ๊ฐ๋ ์ค์ง ์๊ฐ ์์ด ์ฉ๋๊ณผ ๋ก๋๋ฅผ ์ถ๊ฐํ๊ณ ์ฌ๋ถ๋ฐฐํฉ๋๋ค.
๋์ ์์ค์ ๋ด๊ฒฐํจ์ฑ์ ์ ๊ณตํ ํ์๊ฐ ์๋ค๋ฉด ํด๋ฌ์คํฐ๋ก ์ด๋ํ๋ ๊ฒ์ ๊ทธ๋ค์ง ๊ฐ์น๊ฐ ์๋ค๋ ๊ฒฐ๋ก ์ ๋ด๋ฆด ์ ์์ต๋๋ค. ์๋ํ๋ฉด ์ด๋ ์ฌ์ํ ์์ ์ด ๋ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ทธ๋ฌ๋ ์ฒ์์ ๋ณ๋ ๋ฒ์ ๊ณผ ํด๋ฌ์คํฐ ๋ฒ์ ์ค ํ๋๋ฅผ ์ ํํ๋ ๊ฒฝ์ฐ์๋ ํด๋ฌ์คํฐ๋ฅผ ์ ํํด์ผ ํฉ๋๋ค. ํด๋ฌ์คํฐ๊ฐ ๋ ๋์์ง ์๊ณ ๊ณจ์น ์ํ ๋ฌธ์ ๋ ์ํํด ์ฃผ๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ด์ฌ ์ค๋น ์ค
์ด์ฌ ์๊ตฌ ์ฌํญ๋ถํฐ ์์ํด ๋ณด๊ฒ ์ต๋๋ค.
- ๊ทธ๊ฒ์ ์ํํด์ผํฉ๋๋ค. 5๋ถ ๋์ ์๋น์ค๊ฐ ์์ ํ ์ค๋จ๋๋ ๊ฒ์ ์ฐ๋ฆฌ์๊ฒ ์ ํฉํ์ง ์์ต๋๋ค.
- ๊ฐ๋ฅํ ํ ์์ ํ๊ณ ์ ์ง์ ์ผ๋ก ์งํ๋์ด์ผ ํฉ๋๋ค. ๋๋ ์ํฉ์ ์ด๋ ์ ๋ ํต์ ํ๊ณ ์ถ๋ค. ์ฐ๋ฆฌ๋ ๋ชจ๋ ๊ฒ์ ํ๊บผ๋ฒ์ ๋ฒ๋ฆฌ๊ณ ๋กค๋ฐฑ ๋ฒํผ์ ๋๊ณ ๊ธฐ๋ํ๊ณ ์ถ์ง ์์ต๋๋ค.
- ์ด๋ ์ ๋ฐ์ดํฐ ์์ค์ด ์ต์ํ๋ฉ๋๋ค. ์ฐ๋ฆฌ๋ ์์์ ์ผ๋ก ์ด๋ํ๋ ๊ฒ์ด ๋งค์ฐ ์ด๋ ต๋ค๋ ๊ฒ์ ์ดํดํ๋ฏ๋ก ์ผ๋ฐ Redis์ ํด๋ฌ์คํฐํ Redis์ ๋ฐ์ดํฐ ๊ฐ์ ์ฝ๊ฐ์ ๋น๋๊ธฐํ๋ฅผ ํ์ฉํฉ๋๋ค.
ํด๋ฌ์คํฐ ์ ์ง ๊ด๋ฆฌ
์ด๋ํ๊ธฐ ์ง์ ์ ํด๋ฌ์คํฐ๋ฅผ ์ง์ํ ์ ์๋์ง ์๊ฐํด ๋ด์ผ ํฉ๋๋ค.
- ์ฐจํธ. ์ฐ๋ฆฌ๋ Prometheus์ Grafana๋ฅผ ์ฌ์ฉํ์ฌ CPU ๋ก๋, ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋, ํด๋ผ์ด์ธํธ ์, GET, SET, AUTH ์์ ์ ๋ฑ์ ๊ทธ๋ํ๋ก ํ์ํฉ๋๋ค.
- ์ ๋ฌธ์ ์ง์. ๋ด์ผ ๋น์ ์ด ์ฑ ์์ง๋ ๊ฑฐ๋ํ ํด๋ฌ์คํฐ๋ฅผ ๊ฐ๊ฒ ๋ ๊ฒ์ด๋ผ๊ณ ์์ํด ๋ณด์ญ์์ค. ๊ณ ์ฅ๋๋ฉด ๋น์ ์ธ์๋ ๋๊ตฌ๋ ๊ณ ์น ์ ์์ต๋๋ค. ๊ทธ๊ฐ ์๋๋ฅผ ๋ฆ์ถ๊ธฐ ์์ํ๋ฉด ๋ชจ๋๊ฐ ๋น์ ์ ํฅํด ๋ฌ๋ ค๊ฐ ๊ฒ์ ๋๋ค. ๋ฆฌ์์ค๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ๋ก๋๋ฅผ ์ฌ๋ถ๋ฐฐํด์ผ ํ๋ ๊ฒฝ์ฐ ๋ค์ ์ฐ๋ฝํ์ธ์. 25์ธ์ ํ์์ผ๋ก ๋ณํ์ง ์์ผ๋ ค๋ฉด ์ด๋ฌํ ๊ฒฝ์ฐ๋ฅผ ์ ๊ณตํ๊ณ ํน์ ์์ ์์ ๊ธฐ์ ์ด ์ด๋ป๊ฒ ์๋ํ๋์ง ๋ฏธ๋ฆฌ ํ์ธํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ด์ ๋ํ ์์ธํ ๋ด์ฉ์ "์ ๋ฌธ ์ง์" ์น์ ์์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
- ๋ชจ๋ํฐ๋ง ๋ฐ ๊ฒฝ๊ณ . ํด๋ฌ์คํฐ๊ฐ ์ค๋จ๋๋ฉด ๊ฐ์ฅ ๋จผ์ ์ด์ ๋ํด ์๊ณ ์ถ์ต๋๋ค. ์ฌ๊ธฐ์๋ ๋ชจ๋ ๋ ธ๋๊ฐ ํด๋ฌ์คํฐ ์ํ์ ๋ํด ๋์ผํ ์ ๋ณด๋ฅผ ๋ฐํํ๋ค๋ ์๋ฆผ์ผ๋ก ์ ํํ์ต๋๋ค(์, ๋ค๋ฅด๊ฒ ๋ฐ์ํฉ๋๋ค). ๊ทธ๋ฆฌ๊ณ Redis ํด๋ผ์ด์ธํธ ์๋น์ค์ ๊ฒฝ๊ณ ๋ฅผ ํตํด ๋ค๋ฅธ ๋ฌธ์ ๋ฅผ ๋ ๋นจ๋ฆฌ ๋ฐ๊ฒฌํ ์ ์์ต๋๋ค.
์ฌ๋ฐฐ์น
์ฐ๋ฆฌ๊ฐ ์ด๋ป๊ฒ ์์ง์ผ ๊ฒ์ธ๊ฐ:
- ๋จผ์ , ํด๋ฌ์คํฐ์ ์ฐ๋ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค๋นํด์ผ ํฉ๋๋ค. ์ฐ๋ฆฌ๋ go-redis๋ฅผ Go ๋ฒ์ ์ ๊ธฐ๋ฐ์ผ๋ก ์ผ์ ์ฐ๋ฆฌ์๊ฒ ๋ง๊ฒ ์ฝ๊ฐ ๋ณ๊ฒฝํ์ต๋๋ค. ํ์ดํ๋ผ์ธ์ ํตํด ๋ค์ค ๋ฉ์๋๋ฅผ ๊ตฌํํ๊ณ ์์ฒญ ๋ฐ๋ณต ๊ท์น๋ ์ฝ๊ฐ ์์ ํ์ต๋๋ค. PHP ๋ฒ์ ์๋ ๋ ๋ง์ ๋ฌธ์ ๊ฐ ์์์ง๋ง ๊ฒฐ๊ตญ php-redis๋ก ๊ฒฐ์ ํ์ต๋๋ค. ์ต๊ทผ์ ํด๋ฌ์คํฐ ์ง์์ ๋์ ํ๋๋ฐ ์ฐ๋ฆฌ ์๊ฒฌ์ผ๋ก๋ ์ข์ ๋ณด์ ๋๋ค.
- ๋ค์์ผ๋ก ํด๋ฌ์คํฐ ์์ฒด๋ฅผ ๋ฐฐํฌํด์ผ ํฉ๋๋ค. ์ด๋ ๋ฌธ์ ๊ทธ๋๋ก ๊ตฌ์ฑ ํ์ผ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ๋ ๊ฐ์ง ๋ช ๋ น์ผ๋ก ์ํ๋ฉ๋๋ค. ์ค์ ์ ๋ํด์๋ ์๋์์ ๋ ์์ธํ ๋ค๋ฃจ๊ฒ ์ต๋๋ค.
- ์ ์ง์ ์ธ ์ด๋์ ์ํด ๊ฑด์กฐ ๋ชจ๋๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋์ผํ ์ธํฐํ์ด์ค๋ฅผ ๊ฐ์ง ๋ ๊ฐ์ง ๋ฒ์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(ํ๋๋ ์ผ๋ฐ ๋ฒ์ ์ฉ, ๋ค๋ฅธ ํ๋๋ ํด๋ฌ์คํฐ์ฉ)๊ฐ ์์ผ๋ฏ๋ก ๋ณ๋์ ๋ฒ์ ์์ ์๋ํ๊ณ ๋ชจ๋ ์์ฒญ์ ํด๋ฌ์คํฐ์ ๋ณ๋ ฌ๋ก ๋ณต์ ํ๋ ๋ํผ๋ฅผ ๋ง๋๋ ๋ฐ ๋น์ฉ์ด ๋ค์ง ์์ต๋๋ค. ์๋ต์ ๋น๊ตํ๊ณ ๋ก๊ทธ์ ๋ถ์ผ์น๋ฅผ ๊ธฐ๋กํฉ๋๋ค(์ด ๊ฒฝ์ฐ NewRelic). ๋ฐ๋ผ์ ๋กค์์ ์ค์ ํด๋ฌ์คํฐ ๋ฒ์ ์ด ์ค๋จ๋๋๋ผ๋ ํ๋ก๋์ ์๋ ์ํฅ์ ๋ฏธ์น์ง ์์ต๋๋ค.
- ํด๋ฌ์คํฐ๋ฅผ ๊ฑด์กฐ ๋ชจ๋๋ก ๋กค์์ํ ํ ์๋ต ๋ถ์ผ์น ๊ทธ๋ํ๋ฅผ ์นจ์ฐฉํ๊ฒ ๋ณผ ์ ์์ต๋๋ค. ์ค๋ฅ์จ์ด ๋๋ฆฌ์ง๋ง ํ์คํ๊ฒ ์์ ์์ ์ชฝ์ผ๋ก ์ด๋ํ๋ค๋ฉด ๋ชจ๋ ๊ฒ์ด ์ ์์ ๋๋ค. ์ ์ฌ์ ํ ๋ถ์ผ์น๊ฐ ์์ต๋๊น? ๋ณ๋์ ๋ฒ์ ์ผ๋ก์ ๊ธฐ๋ก์ ํด๋ฌ์คํฐ๋ณด๋ค ์กฐ๊ธ ๋ ์ผ์ฐ ์ด๋ฃจ์ด์ง๊ธฐ ๋๋ฌธ์, ๋ง์ดํฌ๋ก๋์ผ๋ก ์ธํด ๋ฐ์ดํฐ๊ฐ ์๊ฐ๋ฆด ์ ์์ต๋๋ค. ๋จ์ ๊ฒ์ ๋ถ์ผ์น ๋ก๊ทธ๋ฅผ ์ดํด๋ณด๋ ๊ฒ๋ฟ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ถ์ผ์น ๋ก๊ทธ๊ฐ ๋ชจ๋ ๋ ์ฝ๋์ ๋น์์์ฑ์ผ๋ก ์ค๋ช ๋๋ฉด ๊ณ์ ์งํํ ์ ์์ต๋๋ค.
- ์ด์ ๊ฑด์กฐ ๋ชจ๋๋ฅผ ๋ฐ๋ ๋ฐฉํฅ์ผ๋ก ์ ํํ ์ ์์ต๋๋ค. ํด๋ฌ์คํฐ์์ ์ฐ๊ณ ์ฝ๊ณ ์ด๋ฅผ ๋ณ๋์ ๋ฒ์ ์ผ๋ก ๋ณต์ ํ๊ฒ ์ต๋๋ค. ๋ฌด์์ ์ํด? ๋ค์ ์ฃผ ๋์ ๋๋ ํด๋ฌ์คํฐ์ ์์ ์ ๊ด์ฐฐํ๊ณ ์ถ์ต๋๋ค. ๊ฐ์๊ธฐ ์ต๋ ๋ถํ์ ๋ฌธ์ ๊ฐ ์๋ ๊ฒ์ผ๋ก ๋ฐํ์ง๊ฑฐ๋ ๋ฌด์ธ๊ฐ๋ฅผ ๊ณ ๋ คํ์ง ์์ ๊ฒฝ์ฐ ๊ฑด์กฐ ๋ชจ๋ ๋๋ถ์ ํญ์ ์ด์ ์ฝ๋์ ํ์ฌ ๋ฐ์ดํฐ๋ก ๊ธด๊ธ ๋กค๋ฐฑ๋ฉ๋๋ค.
- ๋จ์ ๊ฒ์ ๊ฑด์กฐ ๋ชจ๋๋ฅผ ๋นํ์ฑํํ๊ณ ๋ณ๋ ๋ฒ์ ์ ๋ถํดํ๋ ๊ฒ๋ฟ์ ๋๋ค.
์ ๋ฌธ์ ์ง์
๋จผ์ ํด๋ฌ์คํฐ ๋์์ธ์ ๋ํด ๊ฐ๋ตํ ์ค๋ช ํ๊ฒ ์ต๋๋ค.
์ฐ์ Redis๋ ํค-๊ฐ ์ ์ฅ์์
๋๋ค. ์์์ ๋ฌธ์์ด์ด ํค๋ก ์ฌ์ฉ๋ฉ๋๋ค. ์ซ์, ๋ฌธ์์ด, ์ ์ฒด ๊ตฌ์กฐ๋ฅผ ๊ฐ์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค. ํ์๊ฐ ๋ง์ด ์์ง๋ง ์ผ๋ฐ์ ์ธ ๊ตฌ์กฐ๋ฅผ ์ดํดํ๋ ๋ฐ ์ด๊ฒ์ ์ฐ๋ฆฌ์๊ฒ ์ค์ํ์ง ์์ต๋๋ค.
ํค ๋ค์ ์ถ์ํ ์์ค์ ์ฌ๋กฏ(SLOTS)์
๋๋ค. ๊ฐ ํค๋ 16๊ฐ ์ฌ๋กฏ ์ค ํ๋์ ์ํฉ๋๋ค. ๊ฐ ์ฌ๋กฏ ์์๋ ์ํ๋ ๋งํผ์ ํค๊ฐ ์์ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ๋ชจ๋ ํค๋ 383๊ฐ์ ๋ถ๋ฆฌ๋ ์ธํธ๋ก ๋๋ฉ๋๋ค.
๋ค์์ผ๋ก ํด๋ฌ์คํฐ์๋ N๊ฐ์ ๋ง์คํฐ ๋ ธ๋๊ฐ ์์ด์ผ ํฉ๋๋ค. ๊ฐ ๋ ธ๋๋ ํด๋ฌ์คํฐ ๋ด์ ๋ค๋ฅธ ๋ ธ๋์ ๋ํ ๋ชจ๋ ๊ฒ์ ์๊ณ ์๋ ๋ณ๋์ Redis ์ธ์คํด์ค๋ก ์๊ฐํ ์ ์์ต๋๋ค. ๊ฐ ๋ง์คํฐ ๋ ธ๋์๋ ์ฌ๋ฌ ๊ฐ์ ์ฌ๋กฏ์ด ํฌํจ๋์ด ์์ต๋๋ค. ๊ฐ ์ฌ๋กฏ์ ํ๋์ ๋ง์คํฐ ๋ ธ๋์๋ง ์ํฉ๋๋ค. ๋ชจ๋ ์ฌ๋กฏ์ ๋ ธ๋ ๊ฐ์ ๋ถ์ฐ๋์ด์ผ ํฉ๋๋ค. ์ผ๋ถ ์ฌ๋กฏ์ด ํ ๋น๋์ง ์์ผ๋ฉด ํด๋น ์ฌ๋กฏ์ ์ ์ฅ๋ ํค์ ์ก์ธ์คํ ์ ์์ต๋๋ค. ๋ณ๋์ ๋ ผ๋ฆฌ์ ๋๋ ๋ฌผ๋ฆฌ์ ๋จธ์ ์์ ๊ฐ ๋ง์คํฐ ๋ ธ๋๋ฅผ ์คํํ๋ ๊ฒ์ด ํฉ๋ฆฌ์ ์ ๋๋ค. ๋ํ ๊ฐ ๋ ธ๋๋ ํ๋์ ์ฝ์ด์์๋ง ์คํ๋๋ค๋ ์ ์ ๊ธฐ์ตํ ๊ฐ์น๊ฐ ์์ต๋๋ค. ๋์ผํ ๋ ผ๋ฆฌ์ ์์คํ ์์ ์ฌ๋ฌ Redis ์ธ์คํด์ค๋ฅผ ์คํํ๋ ค๋ฉด ์๋ก ๋ค๋ฅธ ์ฝ์ด์์ ์คํ๋๋์ง ํ์ธํ์ธ์(์๋ํ์ง๋ ์์์ง๋ง ์ด๋ก ์ ์ผ๋ก๋ ์๋ํด์ผ ํฉ๋๋ค). . ๊ธฐ๋ณธ์ ์ผ๋ก ๋ง์คํฐ ๋ ธ๋๋ ์ผ๋ฐ ์ค๋ฉ์ ์ ๊ณตํ๊ณ , ๋ ๋ง์ ๋ง์คํฐ ๋ ธ๋๋ฅผ ์ฌ์ฉํ๋ฉด ์ฐ๊ธฐ ๋ฐ ์ฝ๊ธฐ ์์ฒญ์ ํ์ฅํ ์ ์์ต๋๋ค.
๋ชจ๋ ํค๊ฐ ์ฌ๋กฏ์ ๋ถ๋ฐฐ๋๊ณ ์ฌ๋กฏ์ด ๋ง์คํฐ ๋
ธ๋์ ๋ถ์ฐ๋ ํ ๊ฐ ๋ง์คํฐ ๋
ธ๋์ ์์ ์์ ์ฌ๋ ์ด๋ธ ๋
ธ๋๋ฅผ ์ถ๊ฐํ ์ ์์ต๋๋ค. ์ด๋ฌํ ๊ฐ ๋ง์คํฐ-์ฌ๋ ์ด๋ธ ๋งํฌ ๋ด์์ ์ผ๋ฐ ๋ณต์ ๊ฐ ์๋ํฉ๋๋ค. ์ฝ๊ธฐ ์์ฒญ์ ํ์ฅํ๊ณ ๋ง์คํฐ ์ค๋ฅ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ ์ฅ์ ์กฐ์น๋ฅผ ์ํํ๋ ค๋ฉด ์ฌ๋ ์ด๋ธ๊ฐ ํ์ํฉ๋๋ค.
์ด์ ํ ์ ์๋ ๊ฒ์ด ๋ ๋์ ์์ ์ ๋ํด ์ด์ผ๊ธฐํด ๋ณด๊ฒ ์ต๋๋ค.
Redis-CLI๋ฅผ ํตํด ์์คํ ์ ์ก์ธ์คํ๊ฒ ์ต๋๋ค. Redis์๋ ๋จ์ผ ์ง์ ์ ์ด ์์ผ๋ฏ๋ก ๋ชจ๋ ๋ ธ๋์์ ๋ค์ ์์ ์ ์ํํ ์ ์์ต๋๋ค. ๊ฐ ์ง์ ์์ ๋๋ ๋ถํ๊ฐ ๊ฑธ๋ฆฐ ์ํ์์ ์์ ์ ์ํํ ๊ฐ๋ฅ์ฑ์ ๋ํด ๋ณ๋๋ก ์ฃผ๋ชฉํฉ๋๋ค.
- ์ฐ๋ฆฌ์๊ฒ ํ์ํ ์ฒซ ๋ฒ์งธ์ด์ ๊ฐ์ฅ ์ค์ํ ๊ฒ์ ํด๋ฌ์คํฐ ๋ ธ๋ ์์ ์ ๋๋ค. ํด๋ฌ์คํฐ ์ํ๋ฅผ ๋ฐํํ๊ณ ๋ ธ๋ ๋ชฉ๋ก, ์ญํ , ์ฌ๋กฏ ๋ถํฌ ๋ฑ์ ํ์ํฉ๋๋ค. ํด๋ฌ์คํฐ ์ ๋ณด ๋ฐ ํด๋ฌ์คํฐ ์ฌ๋กฏ์ ์ฌ์ฉํ์ฌ ๋ ๋ง์ ์ ๋ณด๋ฅผ ์ป์ ์ ์์ต๋๋ค.
- ๋ ธ๋๋ฅผ ์ถ๊ฐํ๊ณ ์ ๊ฑฐํ ์ ์์ผ๋ฉด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค. ์ด๋ฅผ ์ํด ํด๋ฌ์คํฐ ์ถฉ์กฑ ๋ฐ ํด๋ฌ์คํฐ ์ญ์ ์์ ์ด ์์ต๋๋ค. ํด๋ฌ์คํฐ ์ญ์ ๋ ๋ง์คํฐ์ ๋ณต์ ๋ณธ ๋ชจ๋ ๋ชจ๋ ๋ ธ๋์ ์ ์ฉ๋์ด์ผ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ํด๋ฌ์คํฐ ๋ชจ์์ ํ๋์ ๋ ธ๋์์๋ง ํธ์ถํ๋ฉด ๋ฉ๋๋ค. ์ด ์ฐจ์ด์ ์ ๋นํฉ์ค๋ฌ์ธ ์ ์์ผ๋ฏ๋ก ํด๋ฌ์คํฐ๋ฅผ ์คํํ๊ธฐ ์ ์ ์ด์ ๋ํด ์์๋ณด๋ ๊ฒ์ด ๊ฐ์ฅ ์ข์ต๋๋ค. ๋ ธ๋ ์ถ๊ฐ๋ ์ ํฌ ์ค์ ์์ ํ๊ฒ ์ํ๋๋ฉฐ ์ด๋ค ๋ฐฉ์์ผ๋ก๋ ํด๋ฌ์คํฐ ์๋์ ์ํฅ์ ๋ฏธ์น์ง ์์ต๋๋ค(๋ ผ๋ฆฌ์ ์). ํด๋ฌ์คํฐ์์ ๋ ธ๋๋ฅผ ์ ๊ฑฐํ๋ ค๋ฉด ํด๋น ๋ ธ๋์ ์ฌ๋กฏ์ด ๋จ์ ์์ง ์์์ง ํ์ธํด์ผ ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์ด ๋ ธ๋์ ๋ชจ๋ ํค์ ๋ํ ์ก์ธ์ค๋ฅผ ์์ ์ํ์ด ์์ต๋๋ค. ๋ํ ์ฌ๋ ์ด๋ธ๊ฐ ์๋ ๋ง์คํฐ๋ฅผ ์ญ์ ํ์ง ๋ง์ญ์์ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์ ๋ง์คํฐ์ ๋ํ ๋ถํ์ํ ํฌํ๊ฐ ์ํ๋ฉ๋๋ค. ๋ ธ๋์ ๋ ์ด์ ์ฌ๋กฏ์ด ์๋ค๋ฉด ์ด๋ ์์ ๋ฌธ์ ์ด์ง๋ง ๋จผ์ ์ฌ๋ ์ด๋ธ๋ฅผ ์ญ์ ํ ์ ์๋ค๋ฉด ์ถ๊ฐ ์ ํ์ด ํ์ํ ์ด์ ๋ ๋ฌด์์ ๋๊น?
- ๋ง์คํฐ์ ์ฌ๋ ์ด๋ธ ์์น๋ฅผ ๊ฐ์ ๋ก ๋ฐ๊ฟ์ผ ํ๋ ๊ฒฝ์ฐ ํด๋ฌ์คํฐ ์ฅ์ ์กฐ์น ๋ช ๋ น์ ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค. ์ ํฌ์์ ํธ์ถํ ๋๋ ์์ ์ค์๋ ๋ง์คํฐ๋ฅผ ์ฌ์ฉํ ์ ์๋ค๋ ์ ์ ์ดํดํด์ผ ํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ ํ์ XNUMX์ด ์ด๋ด์ ๋ฐ์ํ์ง๋ง ์์์ ์ด์ง๋ ์์ต๋๋ค. ์ด ์๊ฐ ๋์ ๋ง์คํฐ์ ๋ํ ์ผ๋ถ ์์ฒญ์ด ์คํจํ ๊ฒ์ผ๋ก ์์ํ ์ ์์ต๋๋ค.
- ํด๋ฌ์คํฐ์์ ๋ ธ๋๋ฅผ ์ ๊ฑฐํ๊ธฐ ์ ์ ๋ ธ๋์ ์ฌ๋กฏ์ด ๋จ์ ์์ง ์์์ผ ํฉ๋๋ค. Cluster reshard ๋ช ๋ น์ ์ฌ์ฉํ์ฌ ์ฌ๋ฐฐํฌํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ฌ๋กฏ์ ํ ๋ง์คํฐ์์ ๋ค๋ฅธ ๋ง์คํฐ๋ก ์ ์ก๋ฉ๋๋ค. ์ ์ฒด ์์ ์ ์ ์ก๋๋ ๋ฐ์ดํฐ์ ์์ ๋ฐ๋ผ ๋ช ๋ถ ์ ๋ ๊ฑธ๋ฆด ์ ์์ง๋ง ์ ์ก ํ๋ก์ธ์ค๋ ์์ ํ๋ฉฐ ์ด๋ค ๋ฐฉ์์ผ๋ก๋ ํด๋ฌ์คํฐ ์์ ์ ์ํฅ์ ๋ฏธ์น์ง ์์ต๋๋ค. ๋ฐ๋ผ์ ๋ชจ๋ ๋ฐ์ดํฐ๋ ๊ฐ์ฉ์ฑ์ ๋ํ ๊ฑฑ์ ์์ด ๋ถํ๊ฐ ๊ฑธ๋ฆฐ ์ํ์์ ํ ๋ ธ๋์์ ๋ค๋ฅธ ๋ ธ๋๋ก ์ง์ ์ ์กํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ฏธ๋ฌํจ๋ ์์ต๋๋ค. ์ฒซ์งธ, ๋ฐ์ดํฐ ์ ์ก์ ์์ ์ ๋ฐ ๋ฐ์ ์ ๋ ธ๋์ ํน์ ๋ถํ์ ๊ด๋ จ๋ฉ๋๋ค. ์์ ์ ๋ ธ๋๊ฐ ์ด๋ฏธ ํ๋ก์ธ์์ ๊ณผ๋ํ๊ฒ ๋ก๋๋์ด ์๋ ๊ฒฝ์ฐ ์ ๋ฐ์ดํฐ๋ฅผ ์์ ํ๋ฉด์ ์ด๋ฅผ ๋ก๋ํด์๋ ์ ๋ฉ๋๋ค. ๋์งธ, ๋ณด๋ด๋ ๋ง์คํฐ์ ์ฌ๋กฏ์ด ํ๋๋ ๋จ์ง ์์ผ๋ฉด ๋ชจ๋ ์ฌ๋ ์ด๋ธ๊ฐ ์ฆ์ ์ด ์ฌ๋กฏ์ด ์ ์ก๋ ๋ง์คํฐ๋ก ์ด๋ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฌธ์ ๋ ์ด ๋ชจ๋ ์ฌ๋ ์ด๋ธ๊ฐ ๋์์ ๋ฐ์ดํฐ๋ฅผ ๋๊ธฐํํ๊ธฐ๋ฅผ ์ํ๋ค๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์์ ํ ๋๊ธฐํ๊ฐ ์๋ ๋ถ๋ถ์ ์ธ ๋๊ธฐํ๋ผ๋ฉด ์ด์ด ์ข์ ๊ฒ์ ๋๋ค. ์ด๋ฅผ ๊ณ ๋ คํ์ฌ ์ฌ๋กฏ ์ ์ก ์์ ๊ณผ ์ฌ๋ ์ด๋ธ ๋นํ์ฑํ/์ ์ก ์์ ์ ๊ฒฐํฉํ์ธ์. ์๋๋ฉด ์ถฉ๋ถํ ์์ ์ฌ์ ๊ฐ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
- ์ ์ก ์ค์ ์ด๋๊ฐ์์ ์ฌ๋กฏ์ ์์ด๋ฒ๋ฆฐ ๊ฒ์ ๋ฐ๊ฒฌํ๋ฉด ์ด๋ป๊ฒ ํด์ผ ํฉ๋๊น? ์ด ๋ฌธ์ ๊ฐ ๊ทํ์๊ฒ ์ํฅ์ ๋ฏธ์น์ง ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ๋ง์ฝ ๊ทธ๋ ๋ค๋ฉด ํด๋ฌ์คํฐ ์์ ์์ ์ด ์์ต๋๋ค. ์ต์ํ ๊ทธ๋ ๋ ๋ฌด์์ ์์๋ก ๋ ธ๋ ์ ์ฒด์ ์ฌ๋กฏ์ ๋ถ์ฐ์ํฌ ๊ฒ์ ๋๋ค. ๋จผ์ ํด๋ฌ์คํฐ์์ ๋ถ์ฐ๋ ์ฌ๋กฏ์ด ์๋ ๋ ธ๋๋ฅผ ์ ๊ฑฐํ์ฌ ์๋์ ํ์ธํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ํ ๋น๋์ง ์์ ์ฌ๋กฏ์ ๋ฐ์ดํฐ๋ ์ด๋ฏธ ์ฌ์ฉํ ์ ์์ผ๋ฏ๋ก ํด๋น ์ฌ๋กฏ์ ๊ฐ์ฉ์ฑ ๋ฌธ์ ๋ฅผ ๊ฑฑ์ ํ๊ธฐ์๋ ๋๋ฌด ๋ฆ์์ต๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ์์ ์ ๋ถ์ฐ๋ ์ฌ๋กฏ์ ์ํฅ์ ์ฃผ์ง ์์ต๋๋ค.
- ๋ ๋ค๋ฅธ ์ ์ฉํ ์์ ์ ๋ชจ๋ํฐ์ ๋๋ค. ์ด๋ฅผ ํตํด ๋ ธ๋๋ก ์ด๋ํ๋ ์ ์ฒด ์์ฒญ ๋ชฉ๋ก์ ์ค์๊ฐ์ผ๋ก ํ์ธํ ์ ์์ต๋๋ค. ๊ฒ๋ค๊ฐ, ์ด๋ฅผ grepํ์ฌ ํ์ํ ํธ๋ํฝ์ด ์๋์ง ์์๋ผ ์๋ ์์ต๋๋ค.
๋ง์คํฐ ์ฅ์ ์กฐ์น(failover) ์ ์ฐจ๋ ์ธ๊ธํ ๊ฐ์น๊ฐ ์์ต๋๋ค. ์์ปจ๋ ๊ทธ๊ฒ์ ์กด์ฌํ๋ฉฐ ์ ์๊ฐ์๋ ํ๋ฅญํ๊ฒ ์๋ํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ง์คํฐ ๋ ธ๋๊ฐ ์๋ ์์คํ ์์ ์ ์ ์ฝ๋๋ฅผ ๋ฝ์ผ๋ฉด Redis๊ฐ ์ฆ์ ์ ํ๋์ด ํด๋ผ์ด์ธํธ๊ฐ ์์ค์ ์ธ์ํ์ง ๋ชปํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ง ๋ง์ญ์์ค. ์ค์ ๋ก๋ ๋ช ์ด ์์ ์ ํ์ด ๋ฐ์ํฉ๋๋ค. ์ด ์๊ฐ ๋์ ์ผ๋ถ ๋ฐ์ดํฐ๋ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ง์คํฐ์ ๊ฐ์ฉ์ฑ์ด ๊ฐ์ง๋๊ณ , ๋ ธ๋๊ฐ ์ ๋ ธ๋์ ํฌํํ๊ณ , ์ฌ๋ ์ด๋ธ๊ฐ ์ ํ๋๊ณ , ๋ฐ์ดํฐ๊ฐ ๋๊ธฐํ๋ฉ๋๋ค. ๊ณํ์ด ์ ๋๋ก ์๋ํ๋์ง ํ์ธํ๋ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ ํ์ง ํ๋ จ์ ์ค์ํ๋ ๊ฒ์ ๋๋ค. ๋ ธํธ๋ถ์์ ํด๋ฌ์คํฐ๋ฅผ ์ฌ๋ฆฌ๊ณ , ์ต์ํ์ ๋ก๋๋ฅผ ์ ๊ณตํ๊ณ , ์ถฉ๋์ ์๋ฎฌ๋ ์ด์ ํ๊ณ (์: ํฌํธ ์ฐจ๋จ) ์ ํ ์๋๋ฅผ ํ๊ฐํฉ๋๋ค. ์ ์๊ฐ์๋ ์ด๋ฐ ๋ฐฉ์์ผ๋ก ํ๋ฃจ ์ดํ ํ๋ ์ด๋ฅผ ํด๋ด์ผ๋ง ๊ธฐ์ ์ ์๋์ ์์ ๊ฐ์ ๊ฐ์ง ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค. ๊ธ์, ์๋๋ฉด ์ธํฐ๋ท์ ์ ๋ฐ์ด ์ฌ์ฉํ๋ ์ํํธ์จ์ด๊ฐ ์๋ง๋ ์๋ํ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
๊ตฌ์ฑ
๋๊ตฌ ์์ ์ ์์ํ๊ธฐ ์ํด ๊ฐ์ฅ ๋จผ์ ๊ตฌ์ฑ์ด ํ์ํ ๊ฒฝ์ฐ๊ฐ ๋ง์ผ๋ฉฐ, ๋ชจ๋ ๊ฒ์ด ์ ๋๋ก ์๋ํ๋ฉด ๊ตฌ์ฑ์ ๊ฑด๋๋ฆฌ๊ณ ์ถ์ง๋ ์์ต๋๋ค. ๊ฐ์ ๋ก ์ค์ ์ผ๋ก ๋์๊ฐ์ ์ฃผ์ ๊น๊ฒ ์ดํด๋ณด๋ ค๋ฉด ์ฝ๊ฐ์ ๋ ธ๋ ฅ์ด ํ์ํฉ๋๋ค. ๋ด ๊ธฐ์ต์ผ๋ก๋ ๊ตฌ์ฑ์ ๋ํ ๋ถ์ฃผ์๋ก ์ธํด ์ ์ด๋ ๋ ๋ฒ ์ ๋ ์ฌ๊ฐํ ์คํจ๊ฐ ์์๋ ๊ฒ์ผ๋ก ๊ธฐ์ต๋ฉ๋๋ค. ๋ค์ ์ฌํญ์ ํน๋ณํ ์ฃผ์๋ฅผ ๊ธฐ์ธ์ด์ญ์์ค.
- 0 ์๊ฐ ์ด๊ณผ
๋นํ์ฑ ์ฐ๊ฒฐ์ด ๋ซํ ํ์ ์๊ฐ(์ด)์ ๋๋ค. 0 - ๋ซ์ง ์์
์ฐ๋ฆฌ์ ๋ชจ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ฐ๊ฒฐ์ ์ฌ๋ฐ๋ฅด๊ฒ ๋ซ์ ์ ์๋ ๊ฒ์ ์๋๋๋ค. ์ด ์ค์ ์ ๋นํ์ฑํํ๋ฉด ํด๋ผ์ด์ธํธ ์ ์ ํ์ ๋๋ฌํ ์ํ์ด ์์ต๋๋ค. ๋ฐ๋ฉด์ ๊ทธ๋ฌํ ๋ฌธ์ ๊ฐ ์๋ ๊ฒฝ์ฐ ๋์ด์ง ์ฐ๊ฒฐ์ด ์๋์ผ๋ก ์ข ๋ฃ๋์ด ์ด๋ฅผ ๊ฐ๋ ค์ ์ฐ๋ฆฌ๊ฐ ์์์ฐจ๋ฆฌ์ง ๋ชปํ ์๋ ์์ต๋๋ค. ๋ํ ์ง์ ์ฐ๊ฒฐ์ ์ฌ์ฉํ ๋๋ ์ด ์ค์ ์ ํ์ฑํํ๋ฉด ์ ๋ฉ๋๋ค. - xy ์ ์ฅ ๋ฐ ์ถ๊ฐ๋ง ๊ฐ๋ฅ ์
RDB ์ค๋ ์ท์ ์ ์ฅํ๋ ์ค์ ๋๋ค.
์๋์์ RDB/AOF ๋ฌธ์ ์ ๋ํด ์์ธํ ๋ ผ์ํ๊ฒ ์ต๋๋ค. - stop-writes-on-bgsave-error no & ์ฌ๋ ์ด๋ธ ์๋น์ค ๋ถ์ค ๋ฐ์ดํฐ ์
ํ์ฑํ๋ ๊ฒฝ์ฐ RDB ์ค๋ ์ท์ด ์ค๋จ๋๋ฉด ๋ง์คํฐ๊ฐ ๋ณ๊ฒฝ ์์ฒญ ์๋ฝ์ ์ค์งํฉ๋๋ค. ๋ง์คํฐ์์ ์ฐ๊ฒฐ์ด ๋์ด์ง๋ฉด ์ฌ๋ ์ด๋ธ๋ ๊ณ์ํด์ ์์ฒญ์ ์๋ตํ ์ ์์ต๋๋ค(์). ์๋๋ฉด ์๋ต์ ์ค์งํฉ๋๋ค(์๋์).
์ฐ๋ฆฌ๋ Redis๊ฐ ํธ๋ฐ์ผ๋ก ๋ณํ๋ ์ํฉ์ ๋ง์กฑํ์ง ์์ต๋๋ค. - repl-ping-๋
ธ์-๊ธฐ๊ฐ 5
์ด ๊ธฐ๊ฐ์ด ์ง๋๋ฉด ๋ง์คํฐ๊ฐ ๊ณ ์ฅ๋ฌ๋์ง ๊ฑฑ์ ํ๊ธฐ ์์ํ๊ณ ์ฅ์ ์กฐ์น(failover) ์ ์ฐจ๋ฅผ ์ํํ ์๊ฐ์ ๋๋ค.
๊ฑฐ์ง ๊ธ์ ๊ณผ ์ฅ์ ์กฐ์น ํธ๋ฆฌ๊ฑฐ ๊ฐ์ ๊ท ํ์ ์๋์ผ๋ก ์ฐพ์์ผ ํฉ๋๋ค. ์ค์ ๋ก๋ 5์ด์ ๋๋ค. - repl-๋ฐฑ๋ก๊ทธ ํฌ๊ธฐ 1024mb ๋ฐ epl-๋ฐฑ๋ก๊ทธ-ttl 0
์คํจํ ๋ณต์ ๋ณธ์ ๋ํด ์ ํํ ์ด๋งํผ์ ๋ฐ์ดํฐ๋ฅผ ๋ฒํผ์ ์ ์ฅํ ์ ์์ต๋๋ค. ๋ฒํผ๊ฐ ๋ถ์กฑํ๋ฉด ์์ ํ ๋๊ธฐํํด์ผ ํฉ๋๋ค.
์ค์ต์ ๋ฐ๋ฅด๋ฉด ๋ ๋์ ๊ฐ์ ์ค์ ํ๋ ๊ฒ์ด ๋ ์ข์ต๋๋ค. ๋ณต์ ๋ณธ์ด ์ง์ฐ๋๊ธฐ ์์ํ๋ ๋ฐ๋ ์ฌ๋ฌ ๊ฐ์ง ์ด์ ๊ฐ ์์ต๋๋ค. ์ง์ฐ๋๋ค๋ฉด ๋ง์คํฐ๊ฐ ์ด๋ฏธ ๋์ฒํ๊ธฐ ์ํด ๊ณ ๊ตฐ๋ถํฌํ๊ณ ์์ ๊ฐ๋ฅ์ฑ์ด ๋์ผ๋ฉฐ ์ ์ฒด ๋๊ธฐํ๊ฐ ๋ง์ง๋ง ์งํธ๋ผ๊ธฐ๊ฐ ๋ ๊ฒ์ ๋๋ค. - ์ต๋ ํด๋ผ์ด์ธํธ 10000
์ผํ์ฑ ํด๋ผ์ด์ธํธ์ ์ต๋ ์์ ๋๋ค.
๊ฒฝํ์ ๋ ๋์ ๊ฐ์ ์ค์ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. Redis๋ 10๊ฐ์ ์ฐ๊ฒฐ์ ์ ์ฒ๋ฆฌํฉ๋๋ค. ์์คํ ์ ์ถฉ๋ถํ ์์ผ์ด ์๋์ง ํ์ธํ์ญ์์ค. - ์ต๋ ๋ฉ๋ชจ๋ฆฌ ์ ์ฑ
ํ๋ฐ์ฑ-ttl
์ฌ์ฉ ๊ฐ๋ฅํ ๋ฉ๋ชจ๋ฆฌ ์ ํ์ ๋๋ฌํ๋ฉด ํค๊ฐ ์ญ์ ๋๋ ๊ท์น์ ๋๋ค.
์ฌ๊ธฐ์ ์ค์ํ ๊ฒ์ ๊ท์น ์์ฒด๊ฐ ์๋๋ผ ์ด๊ฒ์ด ์ด๋ป๊ฒ ์ผ์ด๋ ๊ฒ์ธ์ง์ ๋ํ ์ดํด์ ๋๋ค. Redis๋ ๋ฉ๋ชจ๋ฆฌ ์ ํ์ ๋๋ฌํ์ ๋ ์ ์์ ์ผ๋ก ์๋ํ๋ ๋ฅ๋ ฅ์ผ๋ก ์นญ์ฐฌ๋ฐ์ ์ ์์ต๋๋ค.
RDB ๋ฐ AOF ๋ฌธ์
Redis ์์ฒด๋ ๋ชจ๋ ์ ๋ณด๋ฅผ RAM์ ์ ์ฅํ์ง๋ง ๋ฐ์ดํฐ๋ฅผ ๋์คํฌ์ ์ ์ฅํ๋ ๋ฉ์ปค๋์ฆ๋ ์์ต๋๋ค. ๋ณด๋ค ์ ํํ๊ฒ๋ ์ธ ๊ฐ์ง ๋ฉ์ปค๋์ฆ์ ๋๋ค.
- RDB-์ค๋ ์ท - ๋ชจ๋ ๋ฐ์ดํฐ์ ์์ ํ ์ค๋ ์ท์ ๋๋ค. SAVE XY ๊ตฌ์ฑ์ ์ฌ์ฉํ์ฌ ์ค์ ํ๊ณ "์ต์ Y ํค๊ฐ ๋ณ๊ฒฝ๋ ๊ฒฝ์ฐ X์ด๋ง๋ค ๋ชจ๋ ๋ฐ์ดํฐ์ ์ ์ฒด ์ค๋ ์ท์ ์ ์ฅํฉ๋๋ค."๋ผ๊ณ ์ฝ์ต๋๋ค.
- ์ถ๊ฐ ์ ์ฉ ํ์ผ - ์ํ๋๋ ์์์ ๋ฐ๋ฅธ ์์ ๋ชฉ๋ก์ ๋๋ค. X์ด๋ง๋ค ๋๋ Y ์์ ๋ง๋ค ํ์ผ์ ์ ์์ ์์ ์ ์ถ๊ฐํฉ๋๋ค.
- RDB์ AOF๋ ์ด์ ๋ ๊ฐ์ง์ ์กฐํฉ์ ๋๋ค.
๋ชจ๋ ๋ฐฉ๋ฒ์๋ ์ฅ์ ๊ณผ ๋จ์ ์ด ์์ผ๋ฏ๋ก ๋ชจ๋ ๋์ดํ์ง๋ ์๊ฒ ์ต๋๋ค. ์ ์๊ฐ์๋ ๋ช ํํ์ง ์์ ์ ๋ง ๊ฐ์กฐํ๊ฒ ์ต๋๋ค.
๋จผ์ , RDB ์ค๋ ์ท์ ์ ์ฅํ๋ ค๋ฉด FORK๋ฅผ ํธ์ถํด์ผ ํฉ๋๋ค. ๋ฐ์ดํฐ๊ฐ ๋ง์ผ๋ฉด ๋ช ๋ฐ๋ฆฌ์ด์์ ๋ช ์ด ๋์ ๋ชจ๋ Redis๊ฐ ์ค๋จ๋ ์ ์์ต๋๋ค. ๋ํ ์์คํ ์ ์ด๋ฌํ ์ค๋ ์ท์ ์ํด ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํด์ผ ํ๋ฏ๋ก ๋ ผ๋ฆฌ ๋จธ์ ์์ RAM์ ๋ ๋ฐฐ๋ก ๊ณต๊ธํด์ผ ํฉ๋๋ค. Redis์ 8GB๊ฐ ํ ๋น๋ ๊ฒฝ์ฐ ๊ฐ์ ๋จธ์ ์์๋ 16GB๋ฅผ ์ฌ์ฉํ ์ ์์ด์ผ ํฉ๋๋ค. ๊ทธ๊ฒ.
๋์งธ, ๋ถ๋ถ ๋๊ธฐํ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. AOF ๋ชจ๋์์๋ ์ฌ๋ ์ด๋ธ๊ฐ ๋ค์ ์ฐ๊ฒฐ๋ ๋ ๋ถ๋ถ ๋๊ธฐํ๊ฐ ์๋ ์ ์ฒด ๋๊ธฐํ๋ฅผ ์ํํ ์ ์์ต๋๋ค. ์ ์ด๋ฐ ์ผ์ด ์ผ์ด๋๋์ง ์ดํดํ ์ ์์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๊ฒ์ ๊ธฐ์ตํ ๊ฐ์น๊ฐ ์์ต๋๋ค.
์ด ๋ ๊ฐ์ง ์ ์ ๋ชจ๋ ๊ฒ์ด ์ด๋ฏธ ์ฌ๋ ์ด๋ธ์ ์ํด ๋ณต์ ๋ ๊ฒฝ์ฐ ๋์คํฌ์ ์ด ๋ฐ์ดํฐ๊ฐ ์ ๋ง๋ก ํ์ํ์ง ์ฌ๋ถ๋ฅผ ์๊ฐํ๊ฒ ๋ง๋ญ๋๋ค. ๋ชจ๋ ์ฌ๋ ์ด๋ธ๊ฐ ์คํจํ๋ ๊ฒฝ์ฐ์๋ง ๋ฐ์ดํฐ๊ฐ ์์ค๋ ์ ์์ผ๋ฉฐ ์ด๋ "DC ํ์ฌ" ์์ค์ ๋ฌธ์ ์ ๋๋ค. ์ ์ถฉ์์ผ๋ก ์ฌ๋ ์ด๋ธ์๋ง ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋๋ก ์ ์ํ ์ ์์ง๋ง ์ด ๊ฒฝ์ฐ ์ฌํด ๋ณต๊ตฌ ์ค์ ์ด๋ฌํ ์ฌ๋ ์ด๋ธ๊ฐ ๋ง์คํฐ๊ฐ ๋์ง ์๋๋ก ํด์ผ ํฉ๋๋ค(์ด๋ฅผ ์ํด ๊ตฌ์ฑ์ ์ฌ๋ ์ด๋ธ ์ฐ์ ์์ ์ค์ ์ด ์์ต๋๋ค). ์ฐ๋ฆฌ๋ ๊ฐ๊ฐ์ ํน์ ๊ฒฝ์ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋์คํฌ์ ์ ์ฅํ ํ์๊ฐ ์๋์ง ์๊ฐํ๋ฉฐ ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ๋๋ต์ "์๋์ค"์ ๋๋ค.
๊ฒฐ๋ก
๊ฒฐ๋ก ์ ์ผ๋ก, redis-cluster์ ๋ํด ์ ํ ๋ค์ด๋ณด์ง ๋ชปํ ๋ถ๋ค์๊ฒ๋ redis-cluster๊ฐ ์ด๋ป๊ฒ ์๋ํ๋์ง์ ๋ํ ์ผ๋ฐ์ ์ธ ์์ด๋์ด๋ฅผ ์ค ์ ์์์ผ๋ฉด ์ข๊ฒ ๊ณ , ์ฌ์ฉํด ๋ณด์ ๋ถ๋ค์๊ฒ๋ ๋ช ๊ฐ์ง ๋ถ๋ช
ํํ ์ ์ ๋ํด์๋ ๊ด์ฌ์ ๋ ์ ์์์ผ๋ฉด ์ข๊ฒ ์ต๋๋ค. ์ค๋ซ๋์.
์๊ฐ์ ๋ด์ฃผ์
์ ๊ฐ์ฌ๋๋ฆฌ๋ฉฐ, ์ธ์ ๋ ๊ทธ๋ ๋ฏ์ด ํด๋น ์ฃผ์ ์ ๋ํ ์๊ฒฌ์ ํ์ํฉ๋๋ค.
์ถ์ฒ : habr.com