๋ฐ์ดํฐ๋ฒ ์ด์ค๋ผ๊ณ ๋ MySQL, Oracle๊ณผ ๊ฐ์ RDBMS๋ง ์๊ณ ์ฐ๋ ์์ .. Redis์ ๋ํด ‘์บ์ฑํ ๋ ์ด๋ค, ์ฑํ ์๋ฒ ๋ง๋ค ๋ ์ด๋ค, ๋ญํน ์์คํ ๊ตฌํํ ๋ ์ด๋ค..’ ๋ฑ์ ๋ค์๋ค. ํ์ง๋ง Redis์ ๋ํด ์ ํ ๋ชจ๋ฅด๊ณ ์์๊ธฐ ๋๋ฌธ์ Redis๋ฅผ ์ ์จ์ผํ๋์ง๋ ์ ์ ์์๋ค.
๋๋์ฒด Redis๊ฐ ๋ฌด์์ด๊ณ , ์ด๋ค ํน์ง์ ๊ฐ์ง๊ณ ์๊ธธ๋ Redis๋ฅผ ์ฐ๋ ๊ฒ์ผ๊น?
โ Redis๋?
Redis์ ๋ํด ์ด๋ ๊ฒ ํ ์ค๋ก ์๊ฐํ ์ ์๋ค!
in-memory ๊ธฐ๋ฐ์ NoSQL๋ก, key-value์ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค
NoSQL
Not Only SQL’๋ก ‘SQL๋ง์ ์ฌ์ฉํ์ง ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค’๋ผ๋ ๋ป์ผ๋ก ๊ธฐ์กด์ RDBMS์๋ ๋ค๋ฅธ ๊ตฌ์กฐ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ค. DBMS(๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค)๋ ๋ฐ์ดํฐ ๊ฐ ๊ด๊ณ๋ฅผ ๊ฐ๋ ํ ์ด๋ธ ๊ตฌ์กฐ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ , SQL์ ํตํด ๋ฐ์ดํฐ์ ์ ๊ทผํ๋ค. ์ด์ ๋ฌ๋ฆฌ, NoSQL์ Document, key-value ๋ฑ์ ๋น๊ด๊ณํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ , ๋ณ๋์ SQL ๋์ ๋ช ๋ น์ด๋ก ๋ฐ์ดํฐ์ ์ ๊ทผํ๋ค.
in-memory
๋ฐ์ดํฐ๋ฅผ ๋์คํฌ๊ฐ ์๋๋ผ, ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋งํ๋ค. ๋์คํฌ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ฒ ๋๋ฉด, ๋ณ๋์ I/O(์ ์ถ๋ ฅ) ์์ ์ ์ํํ๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ ์ฐ๋ ๋ฐ ์๊ฐ์ด ๊ฑธ๋ฆฌ๊ฒ ๋๋ค. ๋ฐ๋ฉด, ๋ฉ๋ชจ๋ฆฌ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ฒ ๋๋ฉด, ๋ฐ๋ก ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์๋๊ฐ ๋น ๋ฅด๋ค. ํ์ง๋ง ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ๋ฐ์ฑ์ด ์๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ๊ฐ ์ ์ค๋ ์ ์๋ค.
NoSQL๊ณผ in-memory๋ ์์ ํ ๊ฐ์ ๊ฐ๋ ์ด ์๋๊ณ , in-memory๋ NoSQL์ ๋ฐฉ์ ์ค ํ๋๋ก NoSQL์ด ๋ ํฐ ๊ฐ๋ ์ด๋ค.
key-value
NoSQL์ Document, Key-value, Graph ๋ฑ ๋ค์ํ ํํ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ง์ํ๋ค. Redis๋ ๊ทธ ์ค์์ key-value ํํ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ง์ํ๋ค.
Java์์ ์์ฃผ ์ฐ์ด๋ ์๋ฃ๊ตฌ์กฐ Hash์ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ธ JSON, XML์ ๋ ์ฌ๋ฆฌ๋ฉด ๋๋ค.
๐ Redis์ ํน์ง
1. ์์์ฑ์ ์ง์ํ๋ ์ธ๋ฉ๋ชจ๋ฆฌ ๋ฐ์ดํฐ ์ ์ฅ์
- ๋ฐ์ดํฐ์ ๋น ๋ฅธ ์ ๊ทผ์ ์ํด ์ธ๋ฉ๋ชจ๋ฆฌ ์ ์ฅ์๋ฅผ ์ด๋ค. ํ์ง๋ง ๋ฐ์ดํฐ์ ์์์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํด ๋์คํฌ์ ์ ์ฅํ๋ค. ์๋ฒ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํด๋ ๋์คํฌ์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ํตํด ๋ณต๊ตฌ๊ฐ ๊ฐ๋ฅํ๋ค.
2. ๋ค์ํ ๋ฐ์ดํฐ ํ์ ์ ์ง์
- String, List, Hash, Set, Sorted Set๊ณผ ๊ฐ์ ๋ค์ํ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ง์ํ๋ค.
3. Pub/Sub, TTL(Time To Live)์ ๊ฐ์ ๋ค์ํ ๊ธฐ๋ฅ ์ ๊ณต
- ๋ฉ์์ง๋ฅผ ๊ฒ์ํ๊ณ , ๊ตฌ๋ ์์๊ฒ ์ ๋ฌํ๋ ์์คํ ์ ๊ตฌ์ถํ ์ ์๋ค. ๋๋, ํน์ ๊ธฐ๊ฐ ๋ค์ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋๋ก ํ ์ ์๋ค.
4. ๋ถ์ฐํ๊ฒฝ์์ ์์ ์ ์ธ ๋ฐ์ดํฐ ๊ด๋ฆฌ ๊ฐ๋ฅ
5. ๋ช ๋ น์ด๋ฅผ ์ฑ๊ธ ์ค๋ ๋๋ก ํ๋์ฉ ์ฒ๋ฆฌ
6. C, Java, Python ๋ฑ์ ๋ค์ํ ์ธ์ด ํ๊ฒฝ์์ ๊ฐ๋ฐ ๊ฐ๋ฅ
Redis์ ํ์ฉ
1. ์บ์ฑ
๋น๋ฒํ ์์ฒญ์ด ๋ค์ด์ค๋ ๋ฐ์ดํฐ๋ฅผ ์์๋ก Redis์ ์ ์ฅํด์ ๋์ผํ ๋ฐ์ดํฐ ์์ฒญ์ด ๋ค์ด์์ ๋, ์ ์ฅํ ๋ฐ์ดํฐ๋ฅผ ๋ฐํํ๋๋ก ํ ์ ์๋ค. ์บ์๋ฅผ ์ฌ์ฉํ๋ฉด ์ฑ๋ฅ์ด ํฅ์๋๋ค.
2. ์ค์๊ฐ ์์ํ
RDBMS๋ฅผ ์ฌ์ฉํ๋ค๋ฉด ๋ง์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฌํ๊ณ ์ง๊ณ ์ฐ์ฐ์ ์ํํ๋ ๋ฐ ์๊ฐ์ด ์ค๋๊ฑธ๋ฆฌ๊ฒ ๋๋ค. Redis์์ ์ง์ํ๋ Sorted Set์ ์ฌ์ฉํ๋ค๋ฉด ๋น ๋ฅธ ์๋๋ก ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ์ ์๋ค.
3. ์ฑํ
Redis์์ ์ง์ํ๋ Pub/Sub ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ฌ ๋ฉ์์ง ๋ธ๋ก์ปค๋ฅผ ํตํด ์ค์๊ฐ์ผ๋ก ๋ฉ์์ง๋ฅผ ์ฃผ๊ณ ๋ฐ๋๋ก ๊ตฌํํ ์ ์๋ค.
4. ์ธ์ ๊ด๋ฆฌ
์ฌ์ฉ์์ ์ธ์ ์ ๋ํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ๊ด๋ฆฌํ๋ ๋ฐ Redis์ TTL ๊ธฐ๋ฅ์ ์ฌ์ฉํด ๊ด๋ฆฌํ ์ ์๊ณ , ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์ฑ๋ฅ์ ๋์ผ ์ ์์ต๋๋ค.
๐ ์ฐธ๊ณ
'DB > Redis' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Redis] Redis ์๋ฃ ๊ตฌ์กฐ์ ๋ช ๋ น์ด (0) | 2024.02.02 |
---|---|
[Redis] Redis ์ค์นํ๊ธฐ(Window) + GUI(RedisInsight) ์ฐ๊ฒฐ (0) | 2024.02.01 |
[Redis] Redis Cloud ์ฌ์ฉํ๊ธฐ + GUI RedisInsight (0) | 2024.01.27 |