View
๐ก๋ ๋์ค(Redis)๋?
Redis๋ REmote DIctionary Server์ ์ฝ์๋ก ์คํ์์ค DBMS์ด๋ค
๋น์ ํ ๋ฐ์ดํฐ
๋ฅผ ์ ์ฅํ๊ณ ๊ด๋ฆฌํ๊ธฐ ์ํ ๋น๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ
ํ์ด์ค๋ถ, ๋ทํ๋ฆญ์ค ๋ฑ์ ์ด๋ฏธ NoSQL DB๊ธฐ์ ์ ํ์ฉํ๊ณ ์์ผ๋ฉฐ ์ ํธํ๋ ์ํ์ ์ค์๊ฐ์ผ๋ก ๋ณด์ฌ์ค ๋, ๊ฑฐ์ ์์ธ ์์ด NoDQL DB๋ฅผ ์ฌ์ฉ ์ค์ด๋ค ๊ธฐ์กด์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ณด๋ค ๋ ์ตํต์ฑ ์๋ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์ฌ์ฉํ๊ณ ๋จ์ ๊ฒ์ ๋ฐ ์ถ๊ฐ ์์ ์ ์์ด์ ๋งค์ฐ ์ต์ ํ๋ ํค-๊ฐ ์ ์ฅ ๊ธฐ๋ฒ์ ์ฌ์ฉํจ → ์๋ต์๋์ ์ฒ๋ฆฌ ํจ์จ ๊ตฟ
NoSQL์ด๋ ๋ฌด์์ธ๊ฐ? ๋๋๋ฐ์ดํฐ ๋์์ฒ๋ฆฌ์ํ DBMS ์ข ๋ฅ์ ํน์ง
ํค-๊ฐ ๊ธฐ๋ฐ์ด๊ธฐ ๋๋ฌธ์ ์ฟผ๋ฆฌ๋ฅผ ๋ฐ๋กํ ํ์ ์์ด ๊ฒฐ๊ณผ๋ฅผ ๋ฐ๋ก ๊ฐ์ ธ์ฌ ์ ์์ผ๋ฉฐ ๋์คํฌ์์ ๋ฐ์ดํฐ๋ฅผ ์ฐ๋ ๊ตฌ์กฐ๊ฐ ์๋๋ผ ๋ฉ๋ชจ๋ฆฌ์์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํจ → ๋ฐ์ดํฐ ์๋ ๋น ๋ฆ (CPU ๋ช ๋ น์ ์ ๊ฒ ์ฌ์ฉ)
๐ก๋ ๋์ค(Redis) ํน์ง
1๏ธโฃ ์ธ ๋ฉ๋ชจ๋ฆฌ ๋ฐ์ดํฐ ๊ตฌ์กฐ
: List
, Set
, Hash
, Map
๋ฑ์ ์ ํ๋ค์ ์ธ ๋ฉ๋ชจ๋ฆฌ ์์ ์ ์ฅ ํ ์ ์๋ค.
๋ค๋ฅธ ์ธ ๋ฉ๋ชจ๋ฆฌ ๋ฐ์ดํฐ DB์ ๊ฐ์ฅ ํฐ ์ฐจ์ด์ ์ ๋ค์ํ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ง์ํ๊ณ ์๋ค๋ ์ ์ด๋ค
๋ฐ๋ผ์ ๊ฐ๋ฐ์ ํธ์์ฑ์ ํฅ์๋๊ณ ๋์ด๋๋ ๋ฎ์์ง๋ค๋ ์ฅ์ ์ด ์์
2๏ธโฃ ๋ฐ์ดํฐ ์์ํ
๋ ๋์ค
๋ ๋ฐ์ดํฐ๋ฅผ ๋์คํฌ์ ์ ์ฅํ์ฌ, ์์ํ ์ํค๋ ๊ธฐ๋ฅ์ ๊ฐ๊ณ ์๊ธฐ์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋ ๋ฐ์ดํฐ๊ฐ ํ๋ฐ์ฑ์ผ๋ก ์ฌ๋ผ์ง์ง ์๋๋ค
- ํน์ ์์ ์ค๋
์ท(Snapshot): ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋ ๋๋ง๋ค ์ด๋ฅผ ๋์คํฌ์ ์ ์ฅํ๋ `Append Only File
(AOF)` ์์ฑ → ๋ฐ์ดํฐ๋ฅผ ํ์ผ์ ๊ธฐ๋กํด์ ๋ฐ์ดํฐ ์์ค์ ๋ฐฉ์ง ๋ฐ ์ฅ์ ๋ฐ์ ์ ๋ฐ์ดํฐ ์ ์ํ๊ฒ ๋ณต์
3๏ธโฃ ๋ถํ๋ถ์ฐ
๋ ๋์ค
์๋ ๋ค๋ฅธ ์ปดํจํฐ๋ก ๋ณต์ ๋ฅผ ํ๋ ๊ธฐ๋ฅ์ด ์์ด, ๊ฐฑ์ ์ด ๊ฐ๋ฅํ 1๋๋ฅผ ๋ง์คํฐ
๋ก, ๊ทธ ๋ณต์ ๋ ์ฝ๊ธฐ ์ ์ฉ์ ๋ณต์์ ์ปดํจํฐ๋ฅผ ์ฌ๋ ์ด๋ธ
๋ก ๊ตฌ์ฑํ์ฌ ๋ถ์ฐํ๊ฒฝ์ ๋ง๋ค ์ ์๋ค
์ฃผ ์๋ฒ์ ์ฅ์ ๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ ์์ฒญ์ด ์ฌ๋ฌ ์๋ฒ๋ก ๋ถ์ฐ๋ ์ ์์ผ๋ฏ๋ก ํฅ์๋ ์ฝ๊ธฐ ์ฑ๋ฅ๊ณผ ๋ณต๊ตฌ ๊ธฐ๋ฅ์ ๋ชจ๋ ์ ๊ณตํจ
3๏ธโฃ ์ฑ๊ธ ์ค๋ ๋ ๋ฐฉ์
๋ฐ๋ผ์ race condition
์ ํผํด ๋ฐ์ดํฐ์ ์ ํฉ์ฑ์ ๋ณด์ฅํ๊ธฐ ์ฝ๋ค
๋ฐ๋ฉด, ์ฒ๋ฆฌ ์๊ฐ์ด ๊ธด ๋ช ๋ น์ด๊ฐ ๋ค์ด์ฌ ๊ฒฝ์ฐ ์ฑ๊ธ ์ค๋ ๋์ด๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ ๋ช ๋ น์ด๋ค์ ์ฒ๋ฆฌํ ์ ์๋ ์ํ๊ฐ ๋๋ค. ์ ๋งํ๋ฉด ์ฒ๋ฆฌ ์๊ฐ์ด ๊ธด ๋ช ๋ น์ด๋ ํผํ๊ณ O(1) ๋ก ๋์ํ๋ ๋ช ๋ น์ ์คํ์ํค๋ ๊ฒ์ ๊ถ๊ณ ํ๋ค
4๏ธโฃ ๋ฉ๋ชจ๋ฆฌ ๋จํธํ ํน์ ํํธํ
RAM์์ ๋ฉ๋ชจ๋ฆฌ์ ๊ณต๊ฐ์ด ์์ ์กฐ๊ฐ์ผ๋ก ๋๋์ด์ ธ ์ฌ์ฉ๊ฐ๋ฅํ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ถฉ๋ถํ ์กด์ฌํ์ง๋ง ํ ๋น์ด ๋ถ๊ฐ๋ฅํ ์ํ๋ฅผ ๋ฉ๋ชจ๋ฆฌ ๋จํธํ
๋ผ๊ณ ํ๋ค.
redis๋ jmalloc์ ์ฌ์ฉํ์ฌ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ๋ค. ์๋ฅผ๋ค์ด jmalloc์ด ๋ฉ๋ชจ๋ฆฌ ํ์ด์ง ์ฌ์ด์ฆ๋ฅผ4096byte๋ก ์ก์ผ๋ฉด1byte๋ง ์ ์ฅํ๊ฒ ๋์ด๋4096byte๋ฅผ ํ ๋นํ๋ค. ๋๋ฌธ์ ์ฌ์ฉํ์ง ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด ๋ฐ์ํ๊ฒ ๋๋ค. ๋๋ฌธ์ ๊ฐ๋ฐ์๋ ์ ํํ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ํ์ ํ๊ธฐ ์ด๋ ต๋ค.
- Redis๋ ๋ฐ์ดํฐ๋ฅผ ์ด๋ป๊ฒ ์๊ตฌํ ์ํฌ ์ ์๋๊ฐ?
- Redis์๋ ์ด๋ ํ ๋ฐ์ดํฐ ๊ตฌ์กฐ๊ฐ ์๋๊ฐ?
- Redis๋ ์ ์ฑ๋ฅ์ด ๋์๊ฐ?
๐ ์ถ์ฒ ๋ฐ ์ฐธ๊ณ ์ฐจ๋ฃ
์ธ๋ฉ๋ชจ๋ฆฌ ๋ฐ์ดํฐ ์ ์ฅ์ Redis, ์ ์ฌ์ฉํ ๊น? #Redis ํํค์น๊ธฐ
'CS > DB' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[MySQL] View์์ฑ ๋ฐ ์ญ์ (0) | 2022.09.14 |
---|---|
[DB] JDBC ํ ์คํธ (0) | 2022.09.14 |
[MySQL] Mac์์ ์ดํด๋ฆฝ์ค MySQL ์ฐ๋ํ๊ธฐ (MySQL Connector Java) (0) | 2022.09.14 |
[DB] ๋งฅM1_MySQL ๋ค์ด Workbench (0) | 2022.09.12 |
[DB] ๋ฝ(Lock)์ด๋? (0) | 2022.09.08 |