๐คท๐ผRedis๋ ๋ฌด์์ธ๊ฐ์?
- Redis๋ (Remote Dictionary Server)์ ์ฝ์๋ก ์ฐ๋ฆฌ๊ฐ ์น์ ์ฌ์ฉํ๋ฉด์ ์บ์๋ฅผ ํตํ์ฌ ๋น ๋ฅด๊ฒ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ ์ ์๊ฒ ํด์ฃผ๋ ์คํ์์ค ์ธ๋ฉ๋ชจ๋ฆฌ NoSql ํค/๊ฐ ์ ์ฅ์์ด๋ค.
Redis๋ ๋ง๊ทธ๋๋ก ๋น ๋ฅด๋ค.
์ฐ๋ฆฌ๊ฐ ๊ธฐ๋ณธ์ ์ธ ๋ฐฉ๋ฒ์ผ๋ก ์ค์ API๋ฅผ ํธ์ถ -> DB์ฐ๊ฒฐ -> DB๋ฐ์ดํฐ ์ถ์ถ -> ๊ฐ๋ฐํ ํ๋ ํ์์ด ์๋
๋ฐ์ดํฐ๊ฐ ํ์ํ ์ ์์ฒญํ๋ฉด ์บ์์์ ํด๋น ๋ฐ์ดํฐ๋ฅผ ๋น ๋ฅด๊ฒ ์ฐพ์์ ๋ณด์ฌ์ฃผ๋ ๋ฐฉ์์ผ๋ก ๊ตณ์ด ์ฐ๋ฆฌ๊ฐ WAS๋ฅผ ํธ์ถ, DB์ฐ๊ฒฐ, ์ฟผ๋ฆฌ๋ก ์กฐํ.. ๋ฑ๋ฑ ํ ๋น์ฉ์ด ์ค์ด๋ค์ด ์๋๋ฉด์์๋ Redis๊ฐ ๋น ๋ฅด๋ค๋ผ๋ ๋ง์ด ๋์ค๋ ์ด์ ์ด๋ค.
๋ํ ํ๋์ ์น์ ๋ง๋ค์ด ์ฑ์ฅํ๋ฉด์ ์ด๋ฐ์๋ ์ฌ๋๋ค์ด ๋ง์ง๋ ์์์ ์ ์ ์ง๋ฌ์์ง ๋ชฐ๋ผ๋ ๋์ค์ ์ ์ ๋ค์ด ์ ์ฐจ ๋ง์์ง๋ฉด ์๋ฒ๊ฐ ๋ค์ด๋ ๊ฐ๋ฅ์ฑ๋ ์กด์ฌํ๋ค.(๊ทธ๋ด์ผ์ ์ ๋ ์์ด์ผํ๊ฒ ์ง๋ง... ๋์ง)
์ด๋ด๋๋ฅผ ๋๋นํ์ฌ ์ค๋ก์ง DB์๊ฒ๋ง ์์กดํ๋๊ฒ์ด ์๋ ์๋ก ์ฐ๊ฒฐ์์ผ์ค์ผ๋ก์จ ์ฌ์ฉ์๊ฐ ๋ฐ์ดํฐ ์์ฒญ์ ํ๋ฉด
์ฒซ๋ฒ์งธ๋ก ์บ์์์ ์ฌ์ฉ์๊ฐ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ฐพ๊ณ ์์ผ๋ฉด ์ต์ข ํด๊ฒฐ์ฑ ์ผ๋ก DB์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ๋ฐฉ๋ฒ์ด ํ์ฌ๋ ์๋ฒ๋ถํ๋ฅผ ์ค์ผ ์ ์๋ ๋ฐฉ๋ฒ์ด๋ค.
๊ทธ๋ฌ๋ฉด ์๊ฐ์ ํ๋๊ฐ ๋ ๊ถ๊ธํด์ผํ๋ค(๊ถ๊ธํ๋ค๊ณ ๋งํด์ฃผ์ธ์!!)
๋ฐ๋ก ์บ์์๋ฒ์ ํจํด์ด๋ค.
์บ์์๋ฒ์ ํจํด์ Look aside cacheํจํด๊ณผ WriteBack ํจํด์ด ์กด์ฌํ๋ค.
- Look aside cache
1. ํด๋ผ์ด์ธํธ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์์ฒญ
2. ์น์๋ฒ๋ ๋ฐ์ดํฐ๊ฐ ์กด์ฌํ๋์ง ์บ์์๋ฒ์ ๋จผ์ ํ์ธ
3-1. ์บ์์๋ฒ์ ๋ฐ์ดํฐ๊ฐ ์กด์ฌํ๋ฉด DB๊น์ง ์กฐํํ์ง์๊ณ ์บ์์๋ฒ์์ ๋ฐ๋ก ํด๋ผ์ด์ธํธ์๊ฒ ๊ฐ์ ๋ฐํ (Cache Server Data O)
3-2 ์บ์์๋ฒ์ ๋ฐ์ดํฐ๊ฐ ์กด์ฌํ์ง ์์ผ๋ฉด DB๋ฅผ ์กฐํํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ ํด๋ผ์ด์ธํธ์๊ฒ ๊ฐ์ ๋ฐํ (Cache Server Data X)
- Write Back
1. ์น์์๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์บ์์๋ฒ์ ์ ์ฅ
2. ์บ์์๋ฒ์ ํน์ ์๊ฐ ๋์ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋จ
3. ํน์ ์๊ฐ์ด ์ง๋๋ฉด ์บ์์๋ฒ์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ DB๋ก ์ฎ๊ฒจ ์ ์ฅ
4. ์ฎ๊ฒจ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ค์ ์บ์์๋ฒ์์ DELTE
์ด๋ ๊ฒ ๋ณด๋ฉด ํ์คํ Write Backํจํด์ ์ฌ์ฉ์์ ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํ๋ค๋๋ฐ์์ ์ํ๋ถ๋ด์ด ์๊ธธ์ ๋ฐ์ ์๋ค.
์๋์์๋ Redis์ ํน์ง๋ค์ ๋ํ์ฌ ์์๋ณด๊ณ ์ต์ข Redisํน์ง ์ ๋ฆฌ๋ฆฌ์คํธ๊น์ง ๋ณด๋ฉด์ ํ์คํ ์์๊ฐ์
Redis์ ์์์ฑ
Redis๋ ์์์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํด ๋ฐ์ดํฐ๋ฅผ ๋์คํฌ์ ์ ์ฅํ ์ ์๋ค. ์๋ฒ๊ฐ ๋ด๋ ค๊ฐ๋๋ผ๋ ๋์คํฌ์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์ ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋ฉํ๋ค. ๋ฐ์ดํฐ๋ฅผ ๋์คํฌ์ ์ ์ฅํ๋ ๋ฐฉ์์ ํฌ๊ฒ ๋ ๊ฐ์ง๊ฐ ์๋ค.
- RDB(Snapshotting) ๋ฐฉ์
- ์๊ฐ์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ์ ์๋ ๋ด์ฉ ์ ์ฒด๋ฅผ ๋์คํฌ์ ์ฎ๊ฒจ ๋ด๋ ๋ฐฉ์
- AOF(Append On File) ๋ฐฉ์
- Redis์ ๋ชจ๋ write/update ์ฐ์ฐ ์์ฒด๋ฅผ ๋ชจ๋ log ํ์ผ์ ๊ธฐ๋กํ๋ ํํ
Redis์ ์ปฌ๋ ์
- Redis๋ ๋จ์ํ Memcached์ฒ๋ผ String๊ณผ Integerํํ๋ง ์กด์ฌํ๋๊ฒ์ด ์๋ ๋ค์ํ Key-Value์์ด ์กด์ฌํ๋๋ฐ ์๋ ๊ทธ๋ฆผ์ ๋ณด๋ฉฐ ํ์ธํด๋ณด์.
์ ๊ทธ๋ฆผ์ฒ๋ผ Redis๋ String๋ฟ๋ง์ด ์๋ ๋ค์ํ Collectionํํ๋ค๊น์ง ์ง์ํด ์ฃผ๋ฏ๋ก ์ฐ๋ฆฌ๊ฐ๋ฐ์๋ค๋ก์จ๋ ํธ์์ฑ์ด ์ข๊ณ ๋์ด๋๋ ๋ฎ์์ง๋ค.
์ฑ๊ธ ์ค๋ ๋๋ฅผ ์ฌ์ฉํ๋ Redis
Redis๋ ์ฑ๊ธ ์ค๋ ๋๋ฅผ ์ฌ์ฉํ๋ฏ๋ก ์ฐ์ฐ์ ์์์ ์ผ๋ก ์ฒ๋ฆฌํ์ฌ Race Condition์ด ๊ฑฐ์ ๋ฐ์ํ์ง ์๋๋ค.
๋ง์ง๋ง์ผ๋ก Redis์ ํน์ง์ ๋ํ์ฌ ๋ชจ๋ ์ ๋ฆฌํด๋ณด๊ณ ๋ง๋ฌด๋ฆฌ์ง๋๋ก ํ๊ฒ ์ต๋๋ค :)
Redis์ ํน์ง
- ์์์ฑ์ ์ง์ํ๋ ์ธ ๋ฉ๋ชจ๋ฆฌ ๋ฐ์ดํฐ ์ ์ฅ์
- ๋ค์ํ ์๋ฃ ๊ตฌ์กฐ๋ฅผ ์ง์ํจ
- ์ฑ๊ธ ์ค๋ ๋ ๋ฐฉ์์ผ๋ก ์ธํด ์ฐ์ฐ์ ์์์ ์ผ๋ก ์ํ์ด ๊ฐ๋ฅํจ
- ์ฝ๊ธฐ ์ฑ๋ฅ ์ฆ๋๋ฅผ ์ํ ์๋ฒ ์ธก ๋ฆฌํ๋ฆฌ์ผ์ด์ ์ ์ง์
- ์ฐ๊ธฐ ์ฑ๋ฅ ์ฆ๋๋ฅผ ์ํ ํด๋ผ์ด์ธํธ ์ธถ ์ค๋ฉ ์ง์
- ๋ค์ํ ์๋น์ค์์ ์ฌ์ฉ๋๋ฉฐ ๊ฒ์ฆ๋ ์คํ์์ค
์ด์์ผ๋ก Redis์ ๋ํ์ฌ ์์๋ณด๊ธฐ๋ ์ข ๋ฃํ๊ณ ๋ค์์๋ redis๋ฅผ ์ค์ ํ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํ์ฌ ํฌ์คํธ ์งํํด ๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
'Redis' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
(MAC)Redisํ์ฉํธ (0) | 2024.03.03 |
---|