Redis์ ์ฃผ์ ํน์ง
Redis๋ NoSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ๋ถ๋ฅ๋๋ฉฐ Key-Value ํํ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํฉ๋๋ค.
Key-Value DB์ธ ๋์์ In-Memory ๋ฐ์ดํฐ ์ฒ๋ฆฌ์ ์ ์ฅ ๊ธฐ์ ์ ์ ๊ณตํ๋ฏ๋ก ๋น ๋ฅธ Read/Write ์ฑ๋ฅ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
๋ค์ํ ๋ฐ์ดํฐ ์ ํ์ ์ง์ํ๋ฉฐ String, Set, Sorted Set, Hash, List, HyperLogLogs ๋ฑ์ ์ ์ฅํ ์ ์์ต๋๋ค.
๋ฉ๋ชจ๋ฆฌ ์์ ๋ฐ์ดํฐ๋ฅผ Dump ํ์ผ๊ณผ AOF(Append Of File) ๋ฐฉ์์ผ๋ก ๋์คํฌ์ ์ ์ฅํ ์ ์์ต๋๋ค.
Master/Slave Replication์ ํตํด ๋ฐ์ดํฐ์ ๋ถ์ฐ ๋ณต์ ๋ฅผ ์ง์ํ๋ฉฐ Query Off Loading์ ํตํด Master๋ Read/Write ์์ , Slave๋ Read ์์ ์ ์ํํ ์ ์์ต๋๋ค.
ํํฐ์ ๋์ ํตํด ์ํ ํ์ฅ์ด ๊ฐ๋ฅํ๋ฉฐ ๋์ ์ธ ์ค์ผ์ผ ์์์ ์ง์ํฉ๋๋ค.
๋ฐ์ดํฐ์ ๋ง๋ฃ๋ฅผ ์ค์ ํ์ฌ ์ผ์ ์๊ฐ ํ ์๋์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ Expiration ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
Redis์ ์ฃผ์ ์ ๋ฌด ์์ญ
๋น ๋ฅธ ์ฐ๊ธฐ/์ฝ๊ธฐ ์์ ์ด ์๊ตฌ๋๋ ์์ญ์์ In-Memory DB์ ์ฅ์ ์ ํ์ฉํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์์ผ๋ฏ๋ก ์ฃผ๋ก ์ง์์ ์ธ ๊ด๋ฆฌ๊ฐ ํ์ํ ์์ญ์ ์ ํ์ ์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ๊ธฐ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ๋ณด๋ค๋ ๋ ์ํํ ์ ๋ฌด ์์ญ์์ Secondary DB๋ก ํ์ฉ๋ฉ๋๋ค.
์ฃผ๋ก ๋ค์๊ณผ ๊ฐ์ ๋น์ฆ๋์ค ์์ญ์์ ํ์ฉ๋ฉ๋๋ค:
- ๋ฐ์ดํฐ ์บ์ฑ์ ํตํ ๋น ๋ฅธ ์์ ์ด ํ์ํ ์์ญ
- IoT ๋๋ฐ์ด์ค๋ฅผ ํ์ฉํ ๋ฐ์ดํฐ ์์ง ๋ฐ ์ฒ๋ฆฌ
- ์ค์๊ฐ ๋ถ์ ๋ฐ ํต๊ณ ๋ถ์
- ๋ฉ์์ง ํ, ๋จธ์ ๋ฌ๋, ์ ํ๋ฆฌ์ผ์ด์ ์ก ๋งค๋์ง๋จผํธ, ๊ฒ์ ์์ง
๊ธฐ์กด์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ค๋ฅธ NoSQL์ ๋นํด ํจ์จ์ ์ผ๋ก ์ฌ์ฉ๋๋ฉฐ, ๋ฉ์์ง ํ, ๋จธ์ ๋ฌ๋, ์ ํ๋ฆฌ์ผ์ด์ ์ก ๋งค๋์ง๋จผํธ, ๊ฒ์ ์์ง๊ณผ ๊ฐ์ ์์ญ์์ ํนํ ํจ๊ณผ์ ์ผ๋ก ํ์ฉ๋ ์ ์์ต๋๋ค.
2.5 ๋ฐ์ดํฐ ์ฒ๋ฆฌ
2.5.1 ์ฉ์ด ์ค๋ช
Key-Value DB์ ๋ ผ๋ฆฌ์ ๊ตฌ์กฐ
์ฉ์ด | ์ค๋ช |
---|---|
Table | ํ๋์ DB์์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋ ผ๋ฆฌ์ ๊ตฌ์กฐ |
Data Sets | ํ ์ด๋ธ์ ๊ตฌ์ฑํ๋ ๋ ผ๋ฆฌ์ ๋จ์ |
Key | ํ๋์ Key๋ ํ๋ ์ด์์ ์กฐํฉ๋ ๊ฐ์ผ๋ก ํํ ๊ฐ๋ฅ |
Values | Key์ ๋ํ ๊ตฌ์ฒด์ ์ธ ๋ฐ์ดํฐ ๊ฐ |
2.5.2 ๋ฐ์ดํฐ ์ ๋ ฅ/์์ /์ญ์ /์กฐํ
์ข ๋ฅ | ์ค๋ช |
---|---|
set | ๋ฐ์ดํฐ ์ ์ฅ (key, value) |
get | ์ ์ฅ๋ ๋ฐ์ดํฐ ๊ฒ์ |
rename | ์ ์ฅ๋ ๋ฐ์ดํฐ ๊ฐ ๋ณ๊ฒฝ |
randomkey | ์ ์ฅ๋ key ์ค ๋๋ค key ๊ฒ์ |
keys | ์ ์ฅ๋ ๋ชจ๋ key ๊ฒ์ |
exists | ๊ฒ์ ๋์ key ์กด์ฌ ์ฌ๋ถ ํ์ธ |
mset/mget | ์ฌ๋ฌ ๊ฐ์ key์ value๋ฅผ ์ ์ฅํ๊ณ ๊ฒ์ |
2.5.3 ๋ฐ์ดํฐ ํ์
์ข ๋ฅ | ์ค๋ช |
---|---|
Strings | ๋ฌธ์ ๋ฐ Binary ๋ฐ์ดํฐ ์ ์ฅ |
List | ๋ฐฐ์ด ํํ์ ๋ฐ์ดํฐ ์ ์ฅ |
Hash | ํ๋์ ๊ฐ์ผ๋ก ๊ตฌ์ฑ๋ ํ ์ด๋ธ ์ ์ฅ |
Set | ์ ๋ ฌ๋์ง ์์ ๋ฌธ์์ด ์ ์ฅ |
Sorted Set | ์ ๋ ฌ๋ ๋ฌธ์์ด ์ ์ฅ |
Bit | 0๊ณผ 1๋ก ํํํ๋ ๋ฐ์ดํฐ ํ์ |
HyperLogLogs | ๊ณ ์ ํ Element์ ๊ฐ์ ๊ณ์ฐ |
Geo | ์์น ์ ๋ณด(๊ฒฝ๋, ์๋) ๋ฐ์ดํฐ ์ ์ฅ |
2.6 Redis ํ์ฅ Module
1) Redis Server: ๋น ๋ฐ์ดํฐ ์ ์ฅ ๋ฐ ๊ด๋ฆฌ ๊ธฐ์ ์ ๊ณต
2) Redis Extent Module: ๋ค์ํ ๊ธฐ๋ฅ ๊ฐ๋ฐํ์ฌ Redis Server์ ์ถ๊ฐ
๋ชจ๋๋ช | ์ค๋ช |
---|---|
REJSON | JSON ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋ฅผ ์ํ ๋ชจ๋ |
REDISQL | Redis์ SQLite ์ฐ๋ํ์ฌ ๊ด๊ณํ ๋ฐ์ดํฐ ์ ์ฅ ๋ชจ๋ |
RedisSearch | ๋ด๋ถ ๊ฒ์ ์์ง์ ํ์ฉํ๋ ๋ชจ๋ |
Redis-ML | ๋จธ์ ๋ฌ๋ ๋ชจ๋ธ ์๋ฒ๋ฅผ Redis์์ ์ฌ์ฉํ๋ ๋ชจ๋ |
Redis-sPiped | ๋ฐ์ดํฐ ์ํธํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ๋ชจ๋ |
2.7 Lua Function & Script
Lua ์คํฌ๋ฆฝํธ์ ์ฃผ์ ํน์ง
- ๊ฐ๋ฒผ์ด Script Programming Language
- ์ ์ฐจํ ๋ฐ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ ๊ฐ๋ฅ
- Redis Server ๋ด์ฅ๋ Lua Interpreter ์ฌ์ฉ
- eval, evalsha ๋ฑ์ ํจ์๋ก ์คํ ๊ฐ๋ฅ
- ๋ฐ์ดํฐ ๊ฒ์, ์์ , ์ญ์ ๋ฑ์ ํ์ฉ ๊ฐ๋ฅ