2๋จ๊ณ : Redis ๋์
์ด ์ ํธ์์ ํ์ธํ๋ ๊ฒ์ฒ๋ผ ๋น๊ด์ ๋ฝ์ ํ๊ณ๋ ๋ถ๋ช ํ ์กด์ฌํ๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ผ๋ก ๋๋ redis๋ฅผ ๋์ ํด๋ณด๋ ค๊ณ ํ๋ค.
Redis
๋ ๋์ค๋ key, value ๋ฐ์ดํฐ ๊ตฌ์กฐ ์ ์ฅ์๋ก ๋ค์ํ ์ธ๋ฉ๋ชจ๋ฆฌ ๋ฐ์ดํฐ ๊ตฌ์กฐ ์งํฉ์ ์ ๊ณตํ๋ค๋ ํน์ง์ด ์๋ค.
์ Redis?
๋ ๋์ค๋ฅผ ์ ํํ ์ด์ ๋
- ๋์ ์ฑ๋ฅ ๋ฉ๋ชจ๋ฆฌ์ด๊ธฐ ๋๋ฌธ์ ์์ฃผ ๋น ๋ฅธ ์๋ต ์๊ฐ์ ์ ๊ณตํ๋ค. ๊ทธ๋์ ์ฟ ํฐ ๋ฐํ ๊ฐ์ ๋งค์ฐ ๋น ๋ฅธ ์์ฒญ์ ์ฒ๋ฆฌํด์ผ ํ๋๋ฐ DB ๋์คํฌ์์ ๋ฝ ํ๋ vs ๋ฉ๋ชจ๋ฆฌ์์ ๋ฝ ํ๋/ํด์ ์ฒ๋ฆฌ ์ค ๋น์ฐํ ๋ฉ๋ชจ๋ฆฌ์์ ์ฆ์ ๋ฝ ํ๋ ํ๊ณ ํด์ ๊ฐ ๋งค์ฐ ๋นจ๋ผ์ ๋๊ธฐ ์๊ฐ ๋๋ฌธ์ ์๊ธธ ์ ์๋ ํ๊ณ๋ค์ ์ต์ํํ ์ ์๋ค.
- ๋ถ์ฐ ํ๊ฒฝ ์ง์
๋ ๋์ค๋ Redisson๊ฐ์ ๋ถ์ฐ๋ฝ์ ๊ตฌํํ๊ธฐ ์ํ ๊ตฌํ์ฒด๋ค์ ์ ๊ณตํ๋๋ฐ ์ด๋ฅผ ํตํด ๋ถ์ฐ ๋ฝ์ ์์ ์ ์ผ๋ก ๊ตฌํํด ๋์๋ค.
๋ถ์ฐ๋ฝ(Distributed Lock) : ์ฌ๋ฌ ์๋ฒ๋ ํ๋ก์ธ์ค๊ฐ ๊ณต์ ์์์ ์ ๊ทผ ํ ๋, ์ค์ง ํ๋์ ์๋ฒ๋ ํ๋ก์ธ์ค๋ง ํด๋น ์์์ ์ ๊ทผํ ์ ์๋๋ก ์ ์ดํ๋ ๋ฉ์ปค๋์ฆ
- ์ ์ฐํ ๋ฝ ๊ด๋ฆฌ ๋ฝ์ ํ๋ ๋ถํฐ ๋ฝ์ ์ ํจ์๊ฐ ์ง์ ์ด๋ผ๋ ์ง ๋ฐ๋๋ฝ ์ํฉ์ ์๋ฐฉํ๊ธฐ ์ํ ๊ธฐ๋ฅ๋ฑ์ ์ ๊ณตํ๋ค.
์ฐ์ redis์ ๋น ๋ฅธ ์ฒ๋ฆฌ ์๋์ DB ๋ถํ ๊ฐ์๋ฅผ ํ๋ฉด์ ํจ๊ณผ์ ์ผ๋ก ๋์์ฑ ์ฒ๋ฆฌ๋ฅผ ํ๊ธฐ ์ํด Redis๋ ์ฟ ํฐ์ ์ฌ๊ณ ๊ด๋ฆฌ๋ฅผ ํ๋ ์์ค๋ก ์ฌ์ฉํ๋ ์ฉ๋๋ก ์ฌ์ฉํ๋ค.
๋น๊ด์ ๋ฝ๋ง ์ฌ์ฉํ์ ๋์ Redis์ ํจ๊ป ์ฌ์ฉํ์๋์ ์ฐจ์ด๋
- ์ฒ๋ฆฌ ์๋
- ๋น๊ด์ ๋ฝ : ๋ชจ๋ ์์ฒญ์ด DB๋ฝ์ ์ป๊ธฐ ์ํด ๋๊ธฐํด์ผํ๋ค.
- Redis + DB : Redis์์ ๋น ๋ฅด๊ฒ ์ฌ๊ณ ํ์ธ๊ณผ ๊ฐ์๊ฐ ์ด๋ฃจ์ด์ง๋ฏ๋ก, ์ฌ๊ณ ๊ฐ ์๋ ๊ฒฝ์ฐ DB ํธ๋์ญ์ ์์ด ์ฆ์ ์คํจ ์๋ต์ด ๊ฐ๋ฅ
- ๋์์ฑ ์ฒ๋ฆฌ
- ๋น๊ด์ ๋ฝ : DB ์์ค์์ ์์ฐจ์ ์ผ๋ก ์ฒ๋ฆฌ๋๋ค
- Redis + DB : Redis์์ ๋จผ์ ๋น ๋ฅธ ์ฌ๊ณ ์ฒดํฌ๊ฐ ์ด๋ฃจ์ด์ ธ์, ์ค์ DB ํธ๋์ญ์ ์ด ํ์ํ ์์ฒญ๋ง DB์ ๋๋ฌํ๋ค
- ๋ฆฌ์์ค ์ฌ์ฉ
- ๋น๊ด์ ๋ฝ : ๋ชจ๋ ์์ฒญ์ด DB ์ปค๋ฅ์ ์ ํ์๋ก ํ๋ค.
- Redis + DB : ๋ ๋์ค์์ ๊ฑธ๋ฌ์ง ์์ฒญ์ DB ์ปค๋ฅ์ ์ ์ฌ์ฉํ์ง ์๋๋ค
=> ๊ฒฐ๋ก ์ ์ผ๋ก Redis๋ฅผ ๋์ ํ๋ฏ๋ก์จ ๋ถํ์ํ DB ์ปค๋ฅ์ ์ ํฌ๊ฒ ์ค์ผ ์ ์๊ณ , ์์คํ ์ ์ ์ฒด์ ์ธ ์ฑ๋ฅ์ด ํฅ์๋๋ค.
์ด๋ป๊ฒ Redis ์ ์ฉ?
1ํธ์์ Redis ์์กด์ฑ ์ถ๊ฐ๋ฅผ ํ๊ณ ์ค์ ํด๋์ค๊น์ง ์์ฑ์ ํด๋ดค๋ค. ๐AWS ECS Fargate๋ฅผ ํ์ฉํ ํ ์ธ ์ฟ ํฐ ๋ฐ๊ธ ์์คํ - 1 | Sung Jaeโs Blog
์ฟ ํฐ ๋ฐ๊ธํ๋ ์๋๋ฆฌ์ค๋ฅผ ์ ๋ฆฌํด๋ณด์
- ์ฟ ํฐ ๋ฐ๊ธ ์์ฒญ
- ์ค๋ณต ๋ฐ๊ธ ๊ฒ์ฆ
- ์ฟ ํฐ ๋ฐ๊ธ์ ์ํ ๋ถ์ฐ lockํ๋
- ์ฌ๊ณ ํ์ธ ๋ฐ ์ฒ๋ฆฌ
- ์ฟ ํฐ ๋ฐ๊ธ ์ฒ๋ฆฌ
- ๋ฝ ํด์
- ๊ฒฐ๊ณผ ๋ฐํ ์ ์์๋๋ก ์ฟ ํฐ์ด ๋ฐ๊ธ์ด ๋๋ค. ์ฌ๊ธฐ์ ๊ฐ์ฅ ํต์ฌ์ด ๋๋ ๋ถ๋ถ์ 3~6์ด๋ผ๊ณ ๋ณผ ์ ์๋ค. 3~5 ๊ฐ ๋จ๊ณ๋ ์ด๋ค์์ผ๋ก ๊ตฌํํ๋์ง ์์๋ณด์
์ฟ ํฐ ๋ฐ๊ธ์ ์ํ ๋ถ์ฐ lockํ๋
- acquireLock ๋ฉ์๋๋ฅผ ํธ์ถํ์ฌ Redis๋ฅผ ํตํด ๋ถ์ฐ ๋ฝ์ ํ๋ํ๋ค.
- ๋ง์ฝ ๋ฝ ํ๋์ ์คํจํ๋ฉด
- ๋ฐ๊ธ ์ด๋ ฅ์ด ๊ธฐ๋ก๋๊ณ
- fail ์๋ต์ ๋ฐํํ๋ค.
๋ฝ์ ํ๋ํ๋ฉด
์ฌ๊ณ ํ์ธ ๋ฐ ์ฒ๋ฆฌ
- Redis์ ์ฟ ํฐ ์ฌ๊ณ ๋ฅผ ๊ฐ์์ํจ๋ค.
- ์ฌ๊ณ ๊ฐ์์ ์คํจํ๋ค๋ฉด
- ์คํจ ์นด์ดํธ๋ฅผ ์ฆ๊ฐ์ํค๊ณ
- ์คํจ ์ด๋ ฅ์ ์ ์ฅํ๊ณ
- fail ์๋ต์ ๋ฐํํ๋ค.
์ฟ ํฐ ๋ฐ๊ธ ์ฒ๋ฆฌ
![[Pasted image 20241213155720.png]]
- Redis์์ ์ฌ๊ณ ๋ฅผ ๊ฐ์์ํจ ํ ์ค์ DB์์ ์ค์ ๋ก ์ฟ ํฐ์ ๋ฐ๊ธํ๋ค.
- ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฟ ํฐ ์ํ๋ฅผ ๋ณ๊ฒฝํ์ฌ ๋ฐ๊ธ ๊ฐ๋ฅํ ์ํ๋ฅผ ๊ฐ์ํ๋ค.
- ์ฟ ํฐ ๋ฐ๊ธ ๊ธฐ๋ก์ ์ ์ฅํ๋ค
ํ ์คํธ
ํ์ฌ ์์ง AWS์ ์๋ฒ๋ฅผ ๋ฐฐํฌํ ์ํ๊ฐ ์๋๊ธฐ ๋๋ฌธ์ ๋ฌํํ๊ฒ ๋ก์ปฌ์์ ํ ์คํธ๋ฅผ ์งํ ํด๋ดค๋ค.
- ๋์์ฑ ์ ์ด๊ฐ ์๋๋์ง
- Redis์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ฒฐํฉํ ์ฌ๊ณ ์ฒ๋ฆฌ๊ฐ ์ ์์ ์ผ๋ก ์ฒ๋ฆฌ ๋๋์ง ๋ฅผ ์ค์ ์ผ๋ก ํ ์คํธ๋ฅผ ์งํํ๋ค.
ํ ์คํธ๋
- ์ฟ ํฐ 10000๊ฐ
- ์ด ์์ฒญ ๊ฐ์ 1000๋ฒ
- ๋์ ์์ฒญ์ 1000๋ฒ
1 |
|
redis ์ฌ๊ณ ๋ ์ ์์ ์ผ๋ก 1000๊ฐ๋ง ๋ฐ๊ธ ๋์๋ค.
๋ค์ ํธ์ Redis์ ๋ํด ์ข ๋ ์ฌ์ธต์ ์ผ๋ก ๊ณต๋ถํ ๋ด์ฉ๋ค์ ํฌ์คํ ํ ์์ ์ด๋ค.