Redis
Redis
๋น ๋ฅธ ์คํ ์์ค ์ธ ๋ฉ๋ชจ๋ฆฌ ํค ๊ฐ ๋ฐ์ดํฐ ๊ตฌ์กฐ ์คํ ์ด
Redis์ ์ ์
Key - Value ๊ตฌ์กฐ์ ๋น์ ํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ๊ด๋ฆฌํ๊ธฐ ์ํ ์คํ ์์ค ๊ธฐ๋ฐ์ ๋น๊ด๊ณํ ๋ฐ์ดํฐ ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ ์ด๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค, ์บ์, ๋ฉ์ธ์ง ๋ธ๋ก์ปค๋ก ์ฌ์ฉ๋๋ฉฐ ์ธ๋ฉ๋ชจ๋ฆฌ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง ์ ์ฅ์์ด๋ค.
db.engines.com์์ Key-value store์ค์ ๊ฐ์ฅ ์์๊ฐ ๋๋ค
Redis์ ํน์ง
๋ณดํต ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ํ๋ ๋์คํฌ๋ SSD์ ์ ์ฅํ๋ค.
ํ์ง๋ง Redis๋ ๋ฉ๋ชจ๋ฆฌ(RAM)์ ์ ์ฅํด์ ๋์คํฌ ์ค์บ๋์ด ํ์์์ด ๋งค์ฐ ๋น ๋ฅด๋ค.
์บ์ฑ๋ ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ์ค์๊ฐ ์ฑํ ์ ์ ํฉํ๋ฉฐ ์ธ์ ๊ณต์ ๋ฅผ ์ํด ์ธ์ ํด๋ฌ์คํฐ๋ง์๋ ํ์ฉ๋๋ค.
์บ์ ์๋ฒ์ ํจํด
์บ์ ์๋ฒ๋ Look aside cache ํจํด๊ณผ Write Back ํจํด์ด ์กด์ฌํ๋ค.
- Look aside cache
1. ํด๋ผ์ด์ธํธ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์์ฒญ
์น์๋ฒ๋ ๋ฐ์ดํฐ๊ฐ ์กด์ฌํ๋์ง Cache ์๋ฒ์ ๋จผ์ ํ์ธ
Cache ์๋ฒ์ ๋ฐ์ดํฐ๊ฐ ์์ผ๋ฉด DB์ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ์ง ์๊ณ Cache ์๋ฒ์ ์๋ ๊ฒฐ๊ณผ๊ฐ์ ํด๋ผ์ด์ธํธ์๊ฒ ๋ฐ๋ก ๋ฐํ (Cache Hit)
Cache ์๋ฒ์ ๋ฐ์ดํฐ๊ฐ ์์ผ๋ฉด DB์ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ์ฌ Cache ์๋ฒ์ ์ ์ฅํ๊ณ ๊ฒฐ๊ณผ๊ฐ์ ํด๋ผ์ด์ธํธ์๊ฒ ๋ฐํ (Cache Miss)
- Write Back
์น์๋ฒ๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ Cache ์๋ฒ์ ์ ์ฅ
Cache ์๋ฒ์ ํน์ ์๊ฐ ๋์ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋จ
Cache ์๋ฒ์ ์๋ ๋ฐ์ดํฐ๋ฅผ DB์ ์ ์ฅ
DB์ ์ ์ฅ๋ Cache ์๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ์ญ์
insert ์ฟผ๋ฆฌ๋ฅผ ํ ๋ฒ์ฉ 500๋ฒ ๋ ๋ฆฌ๋ ๊ฒ๋ณด๋ค insert ์ฟผ๋ฆฌ 500๊ฐ๋ฅผ ๋ถ์ฌ์ ํ ๋ฒ์ ๋ ๋ฆฌ๋ ๊ฒ์ด ๋ ํจ์จ์ ์ด๋ผ๋ ์๋ฆฌ๋ค.
์ด ๋ฐฉ์์ ๋ค์ด์ค๋ ๋ฐ์ดํฐ๋ค์ด ์ ์ฅ๋๊ธฐ ์ ์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๋จธ๋ฌด๋ฅด๋๋ฐ ์ด๋ ์๋ฒ์ ์ฅ์ ๊ฐ ๋ฐ์ํ์ฌ ๋ค์ด๋๋ค๋ฉด ๋ฐ์ดํฐ๊ฐ ์์ค๋ ์ ์๋ค๋ ๋จ์ ์ด ์๋ค.
...Redis์ ํน์ง
๊ทธ๋ฌ๋ ์ด ๋, RAM์ ํ๋ฐ์ฑ์ด๋ผ ์ปดํจํฐ๊ฐ ๊บผ์ง๋ฉด ์ ๋ณด๊ฐ ๋ค ๋ ์๊ฐ๋ฒ๋ฆฐ๋ค๋ ์ฝ์ ์ด ์๋ค.
์ด๋ฅผ ๋ง๊ธฐ์ํ ๋ฐฑ์ ๊ณผ์ ์ด ๋ค์ ๋ ๊ฐ์ง๋ก ๋๋๋ค.
Snapshot : ํน์ ์ง์ ์ ์ค์ ํ๊ณ ๋์คํฌ์ ๋ฐฑ์ .
AOF : ๋ช ๋ น(์ฟผ๋ฆฌ)๋ค์ ์ ์ฅํด๋๊ณ , ์๋ฒ๊ฐ ์ ง๋ค์ด๋๋ฉด ์ฌ์คํํด์ ๋ค์ ๋ง๋ค์ด ๋๋ ๊ฒ.
Redis์ ๊ฒฝ์ฐ Key-value๊ตฌ์กฐ์ด๊ธฐ ๋๋ฌธ์ ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ ํ์๊ฐ ์๋ค. ๋์ Redis ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ๋ค.
์ง์ํ๋ ์๋ฃ๊ตฌ์กฐ๋ String, Sets, Lists, Sorted Sets, Hashes ์๋ฃ๊ตฌ์กฐ๊ฐ ์๋ค.
๋ํ ๋ ๋์ค๋ Single Threaded์ด๋ค. ๋ฐ๋ผ์ ํ ๋ฒ์ ํ๋์ ๋ช ๋ น๋ง ์ฒ๋ฆฌํ ์ ์๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ๋๊ธฐ์ ์ผ๋ก ๋ช ๋ น๋ค์ด ์ฒ๋ฆฌ๊ฐ ๋๋๋ฐ, get, set ๋ช ๋ น์ด์ ๊ฒฝ์ฐ ์ด๋น ์ฒ๋ฆฌ์๋๊ฐ 10๋ง๊ฐ๋ฅผ ๋์ด๊ฐ๊ธฐ ๋๋ฌธ์ ์๋ฏธ๋ ์๋ค.
Redis ์ฌ์ฉ์ ์ฃผ์ํ ์
์๋ฒ์ ์ฅ์ ๊ฐ ๋ฐ์ํ์ ๊ฒฝ์ฐ ๊ทธ์ ๋ํ ์ด์ ํ๋์ด ๋ฐ๋์ ํ์ํ๋ค.
์ธ๋ฉ๋ชจ๋ฆฌ ์ ์ฅ๋ฐฉ์์ด๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ ์ ์ค์ด ๋ฐ์ํ ์ ์๋๋ฐ, ์ด๊ฒ์ ์ด๋ป๊ฒ ํจ๊ณผ์ ์ผ๋ก ๋ฐฉ์งํ ๊ฒ์ธ์ง?
๋ํ, ๋น์ฐํ ์๊ธฐ์ง๋ง, ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๊ฐ ๋งค์ฐ ์ค์ํ๋ค.
๊ทธ๋ฆฌ๊ณ ์ฑ๊ธ ์ค๋ ๋์ ํน์ฑ์ ํ ๋ฒ์ ํ๋์ ๋ช ๋ น๋ง์ ์ฒ๋ฆฌํ๊ธฐ ๋๋ฌธ์, ์ฒ๋ฆฌํ๋๋ฐ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆด ์ ์๋ ์์ฒญ์ ์ต๋ํ ํผํ๋ ๊ฒ์ด ์ข๊ฒ ๋ค.
Last updated