did_story
[Redis] Redis๋ ๋ฌด์์ผ๊น? ๋ณธ๋ฌธ
root๋ผ๋ ๋ถ์ฐ๋ ๋งํฌ ์ ์ฅ ์๋น์ค๋ฅผ ๊ฐ๋ฐํ๋ ์ค์ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๋ ์ํฉ์์ ๋ณ๋ชฉ์ด ์๊ธฐ๋ ํ์์ ๋ฐ๊ฒฌํ์๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ฐฉ๋ฒ์ ์ฐพ์๋ณด๋ ์ค ์ด์ ์ chatting์ ๊ตฌํํ ๋ ์ฌ์ฉํ๋ redis๋ฅผ ์ฌ์ฉํด๋ณด๋ ๊ฒ์ ์ด๋จ๊น ์๊ฐ์ ๊ฐ์ก๊ณ , ์ง์ ๊ฐ๋ฐ๊น์ง ์ด์ด์ง๋ ๊ณผ์ ์ ์จ๋ณด๋ ค๊ณ ํฉ๋๋ค. ์ง๊ธ ๋ธ๋ก๊ทธ๋ Redis๊ฐ ๋ฌด์์ธ์ง ์ดํด๋ณด๋ฉฐ ์ฌ์ฉํ ์ด์ ๋ฅผ ๋ณด์ฌ๋๋ฆฌ๋ ค ํฉ๋๋ค.
Redis๋ ‘Remote Dictionary Server’์ ์ฝ์๋ก, ์คํ ์์ค ๊ธฐ๋ฐ์ ์ธ ๋ฉ๋ชจ๋ฆฌ(In-memory) ๋ฐ์ดํฐ ์ ์ฅ์์ ๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค, ์บ์, ๋ฉ์์ง ๋ธ๋ก์ปค ๋ฑ ๋ค์ํ ์ฉ๋๋ก ์ฌ์ฉ๋๋ฉฐ, ํค-๊ฐ(Key-Value) ๊ตฌ์กฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์๋ ๋ฌ๋ฆฌ, ๋์คํฌ๊ฐ ์๋ ๋ฉ๋ชจ๋ฆฌ์์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ๋๋ฌธ์ ๋งค์ฐ ๋น ๋ฅธ ๋ฐ์ดํฐ ์ก์ธ์ค ์๋๋ฅผ ์ ๊ณตํฉ๋๋ค.
Redis์ ํค-๊ฐ ์ ์ฅ์์ ๋ค์ํ ๋ฐ์ดํฐ ๊ตฌ์กฐ ์ง์
Redis๋ ๋จ์ํ ํค-๊ฐ ์ ์ฅ์ ์ด์์ ๊ณตํฉ๋๋ค. ๋ฌธ์์ด, ๋ฆฌ์คํธ, ํด์, ์ , ์ ๋ ฌ๋ ์ ๋ฑ ๋ค์ํ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ง์ํ์ฌ ๋ณด์กํ ๋ฐ์ดํฐ๋ฅผ ์์ฝ๊ฒ ์ ์ฅํ๊ณ ๊ด๋ฆฌํ ์ ์์ต๋๋ค. ์ด๋ฌํ ์ ์ฐํ ๋ฐ์ดํฐ ๊ตฌ์กฐ ๋๋ถ์, ์์ ๋ฏธ๋์ด์ ํผ๋ ๊ด๋ฆฌ ์ค์๊ฐ ์์ ๊ณ์ฐ๋ฑ์ ๋ณต์กํ ์์ ์ ํจ์จ์ ์ผ๋ก ์ํํ ์ ์์ต๋ใ ใท.
์ธ์ ๊ด๋ฆฌ
Redis๋ ์ฌ์ฉ์ ์ธ์ ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํ์ฌ ๋น ๋ฅด๊ณ ํจ์จ์ ์ธ ์ธ์ ๊ด๋ฆฌ๋ฅผ ์ง์ํฉ๋๋ค.
- ์ฌ์ฉ์ ์ธ์ฆ ์๋ ํฅ์: ๋ก๊ทธ์ธ ์ ์ฌ์ฉ์ ๋ฐ์ดํฐ๋ฅผ ์ฆ๊ฐ์ ์ผ๋ก ์กฐํํ ์ ์์ด ์ธ์ฆ ์๋๋ฅผ ํฌ๊ฒ ๋์ ๋๋ค.
- ์ธ์ ๋ง๋ฃ ๊ด๋ฆฌ: TTL(Time to Live)์ ์ค์ ํด ๋ถํ์ํ ๋ฐ์ดํฐ๊ฐ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฐจ์งํ์ง ์๋๋ก ์๋์ผ๋ก ๋ง๋ฃ์ํต๋๋ค. ์ด๋ฅผ ํตํด ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
- ๋ค์ค ์๋ฒ ํ๊ฒฝ ์ง์: Redis๋ฅผ ์ค์ ์ธ์ ์ ์ฅ์๋ก ์ฌ์ฉํ๋ฉด ์ฌ๋ฌ ์น ์๋ฒ ๊ฐ ์ธ์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฒ ๊ณต์ ํ ์ ์์ด ๋ก๋๋ฐธ๋ฐ์ฑ ํ๊ฒฝ์์๋ ์์ ์ ์ธ ์ธ์ ๊ด๋ฆฌ๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
์บ์ฑ ์์คํ
Redis๋ ์์ฃผ ์กฐํ๋๋ ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์บ์ฑ ํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ถํ๋ฅผ ์ค์ด๊ณ ๋น ๋ฅธ ์๋ต ์๋๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ์ฝ๊ธฐ ๋ถํ ๋ถ์ฐ: ์ ํ ์ ๋ณด, ํ์ด์ง ์ฝํ ์ธ ๊ฐ์ ๊ณ ๋น๋ ์ฝ๊ธฐ ์์ฒญ์ Redis์ ์บ์ฑ ํด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฝ๊ธฐ ๋ถํ๋ฅผ ๊ฐ์์ํต๋๋ค.
- ๋ณต์กํ ์ฐ์ฐ ์๋ ํฅ์: ์ํ ์ถ์ฒ์ด๋ ๊ฒ์ ๊ฒฐ๊ณผ์ฒ๋ผ ๊ณ์ฐ์ด ๋ง์ ๋ฐ์ดํฐ๋ฅผ Redis์ ์ ์ฅํด ํด๋ผ์ด์ธํธ ์์ฒญ ์ ๋น ๋ฅด๊ฒ ๋ฐํํ ์ ์์ต๋๋ค.
- ๋ง๋ฃ ์ ์ฑ ์ง์: ์บ์ฑ ๋ฐ์ดํฐ์ TTL์ ์ค์ ํด ์ค๋๋ ๋ฐ์ดํฐ๋ฅผ ์๋์ผ๋ก ์ ๊ฑฐ, ์ต์ ์ํ๋ฅผ ์ ์งํ ์ ์์ต๋๋ค.
์ค์๊ฐ ๋ถ์
Redis๋ ์ค์๊ฐ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๊ฐ ์ค์ํ ํ๊ฒฝ์์ ๋น ๋ฅธ ๋ฐ์ดํฐ ์กฐํ์ ์ง๊ณ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
- ๋์๋ณด๋ ์ ๋ฐ์ดํธ: ํธ๋ํฝ, ์ฌ์ฉ์ ํ๋ ๋ฐ์ดํฐ ๊ฐ์ ์ ๋ณด๋ฅผ Redis์ ์ ์ฅํด ์ค์๊ฐ์ผ๋ก ๋์๋ณด๋์ ๋ฐ์ํ ์ ์์ต๋๋ค.
- ์ค์๊ฐ ํต๊ณ ๊ณ์ฐ: Redis์ Sorted Set์ด๋ Hash ๊ตฌ์กฐ๋ฅผ ํ์ฉํด ์ฌ์ฉ์ ํ๋ ์ง๊ณ๋ ์์ ๊ณ์ฐ์ ์ฆ์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
- ์ด๋ฒคํธ ์ฒ๋ฆฌ: ์ค์๊ฐ์ผ๋ก ๋ฐ์ํ๋ ์ด๋ฒคํธ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์ฒ๋ฆฌํด ์ด์ ์งํ ํ์ง, ํธ๋์ญ์ ๋ชจ๋ํฐ๋ง ๊ฐ์ ์์คํ ์ ํ์ฉ๋ฉ๋๋ค.
๋ฉ์์ง ํ
Redis์ Pub/Sub ๊ธฐ๋ฅ์ ์ค์๊ฐ ๋ฉ์์ง ์ ์ก๊ณผ ์์ ์ ๊ฐ๋จํ๊ณ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํฉ๋๋ค.
- ์ค์๊ฐ ์๋ฆผ ์์คํ : Redis๋ฅผ ํ์ฉํ๋ฉด ์ด๋ฉ์ผ ์๋ฆผ, ํธ์ ์๋ฆผ์ ์ค์๊ฐ์ผ๋ก ์ ์กํ ์ ์์ต๋๋ค.
- ์ฑํ ์ ํ๋ฆฌ์ผ์ด์ : ์ฌ์ฉ์ ๊ฐ ๋ฉ์์ง๋ฅผ Redis๋ฅผ ํตํด ์ฆ์ ์ ๋ฌํด ๋๊น ์๋ ์ค์๊ฐ ์ฑํ ํ๊ฒฝ์ ๊ตฌํํ ์ ์์ต๋๋ค.
- ์คํธ๋ฆฌ๋ฐ ๋ฐ์ดํฐ ๊ด๋ฆฌ: Redis Streams ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ฉด ์ค์๊ฐ์ผ๋ก ๋ฐ์ดํฐ ์คํธ๋ฆฌ๋ฐ์ ๊ด๋ฆฌํ๊ณ , ์ฌ๋ฌ ์๋น์(Consumer)์๊ฒ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฐฐํ ์ ์์ด ํ์ฅ์ฑ์ด ๋ฐ์ด๋ฉ๋๋ค.
Redis๋ ์ธ ๋ฉ๋ชจ๋ฆฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก์ ๋ฐ์ด๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋ฅ๋ ฅ์ ์๋ํฉ๋๋ค. ๋์ ์ฒ๋ฆฌ๋๊ณผ ์์์ฑ ์ต์ ๋๋ถ์ ์ธ์ ๊ด๋ฆฌ, ์บ์ฑ ์์คํ , ์ค์๊ฐ ๋ถ์, ๋ฉ์์ง ํ์ ๊ฐ์ ํ๋ก์ ํธ์์ ํ์ฉํ๋ฉด ๋์ฑ ํจ๊ณผ์ ์ธ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์์ต๋๋ค. ์ด์ด์ง๋ ๋ด์ฉ์์๋ Redis๋ฅผ ๋์ฑ ํจ๊ณผ์ ์ผ๋ก ํ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค.
'BackEnd๐' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [Redis] Redis๋ฅผ ํ์ฉํ ๋ฉํ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๊ตฌ์กฐ ์ค๊ณ๊ธฐ (2) | 2025.08.29 |
|---|---|
| ์ ์ด ํ๊นจ๋ 404 ์๋ฌ... ์ด์ ๋?! (1) | 2025.06.11 |