๐ ์๊ฐ
ํด๋น ํฌ์คํ ์์๋ Redis์ ๊ธฐ๋ณธ ๋ช ๋ น์ด ์ค String ํ์ ์ ๋ํด ์ค๋ช ํ๊ณ , ์์ฃผ ์ฐ๋ ๋ช ๋ น์ด์ ์ข ๋ฅ์ ๊ฐ๋จํ ํ์ฉ ์์ ๋ฅผ ์ดํด๋ณธ๋ค. ํ์ฉํ ๋ ๋์ค ๋ฒ์ ์ ์ต์ 7.2.4 ๋ฒ์ ์ด๋ค. ํ์ ๋ฒ์ ์ ํน์ ๋ช ๋ น์ด๊ฐ ์กด์ฌํ์ง ์์ ์๋ ์๋ค.
๋ฌธ์์ด (String)
Redis์ ๋ฌธ์์ด(String)์ ๋ ๋์ค์์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์๋ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ด๊ณ ๋จ์ํ ๋ฐ์ดํฐ ํ์ ์ค ํ๋๋ก, ํค์ ๋ฌธ์์ด ๊ฐ์ผ๋ก ์ด๋ฃจ์ด์ ธ ์์ผ๋ฉฐ, ์ต๋ 512MB ๋ฌธ์์ด ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์๋ค.
๋ฌธ์์ด์ ๋ค์๊ณผ ๊ฐ์ ํน์ง์ ๊ฐ๋๋ค.
- ๊ฐ๋จํ ๊ฐ ์ ์ฅ
Redis์ ๋ฌธ์์ด ํ์ ์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ Key-Value ์ ์ฅ์๋ก ์ฌ์ฉ๋๋ค. ๊ฐ ํค์๋ ํ๋์ ๋ฌธ์์ด ๊ฐ์ด ๋งคํ๋๋ค. ์ด๋ฌํ ๊ฐ๋จํ ๊ตฌ์กฐ๋ ๋ฐ์ดํฐ๋ฅผ ๋น ๋ฅด๊ฒ ์ฝ๊ณ ์ธ ์ ์๋๋ก ํ๋ค.
- ์ฑ๋ฅ ๋ฐ ํ์ฅ์ฑ
๋ฌธ์์ด์ ๋ด๋ถ์ ์ผ๋ก ๋ฐ์ด๋๋ฆฌ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ(binary-safe) ํ๋ฏ๋ก, ์ด์ง ๋ฐ์ดํฐ ๋ฐ ํ ์คํธ ๋ฐ์ดํฐ ๋ชจ๋ ํจ๊ณผ์ ์ผ๋ก ์ ์ฅํ ์ ์๋ค. ๋ํ, ๋ฌธ์์ด์ Redis์ ๋ฉ๋ชจ๋ฆฌ ๊ธฐ๋ฐ ์คํ ๋ฆฌ์ง ํน์ฑ์ ๋น ๋ฅธ ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ ์ฑ๋ฅ์ ์ ๊ณตํ๋ค.
- ๋ค์ํ ํ์ฉ์ฑ
๋ฌธ์์ด์ ๋จ์ํ ๋ฌธ์์ด ๊ฐ์ ์ ์ฅํ๋ ์ฉ๋๋ฅผ ๋์ด์ ๋ค์ํ ์ฉ๋๋ก ํ์ฉ๋ ์ ์๋ค. ์๋ฅผ ๋ค์ด, ์นด์ดํฐ๋ก ํ์ฉํ๊ฑฐ๋ JSON ํํ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ์ฌ ์์ฉ ํ๋ก๊ทธ๋จ ๊ฐ์ ํต์ ์ ํ์ฉํ ์ ์๋ค. ๋ํ, JPEG ์ด๋ฏธ์ง์ ๊ฐ์ ๋ฐ์ดํธ ๊ฐ, HTTP ์๋ต๊ฐ ๋ฑ๋ ์ ์ฅํ ์ ์๋ค.
๋ช ๋ น์ด (Command)
SET
์ค๋ช : ํน์ ํค์ ๋ฌธ์์ด ๊ฐ์ ์ค์ ํ๋ค.
์ฌ์ฉ ์์ :
> SET shiba holic
๋ง์ฝ shiba๋ผ๋ ํค์ ๋ค๋ฅธ ๊ฐ์ด ์ฐ๊ฒฐ๋์ด ์์ผ๋ฉด, ๊ธฐ์กด ๊ฐ์ ์๋ก ์ ๋ ฅ๋ ๊ฐ์ผ๋ก ๋์ฒด๋๋ค.
NX ์ต์ ์ ์ฌ์ฉํ๋ฉด ์ง์ ํ ๊ธฐ๊ฐ ์์ ๋๋ง ์๋ก์ด ํค๋ฅผ ์ ์ฅํ๋ค.
XX ์ต์ ์ ์ฌ์ฉํ๋ฉด ํค๊ฐ ์ด๋ฏธ ์์ ๋๋ง ์๋ก์ด ๊ฐ์ผ๋ก ๋ฎ์ด์ฐ๊ณ ์๋ก์ด ํค๋ฅผ ์์ฑํ์ง๋ ์๋๋ค.
> SET shiba holic2 NX
> SET shiba holic2 XX
GET
์ค๋ช : ์ง์ ๋ ํค์ ์ ์ฅ๋ ๋ฌธ์์ด ๊ฐ์ ์กฐํํ๋ค.
์ฌ์ฉ ์์ :
> GET shiba
INCR
์ค๋ช : ์ง์ ๋ ํค์ ๊ฐ์ ์์์ ์ผ๋ก 1์ฉ ์ฆ๊ฐ์ํจ๋ค. (์ ์ํ ๊ฐ๋ง ๊ฐ๋ฅ)
์ฌ์ฉ ์์ :
> SET shiba 100
> INCR shiba
(integer) 101
INCRBY
์ค๋ช : ์ง์ ๋ ํค์ ๊ฐ์ ์ง์ ๋ ์ซ์๋งํผ ์์์ ์ผ๋ก ์ฆ๊ฐ์ํจ๋ค. (์ ์ํ ๊ฐ๋ง ๊ฐ๋ฅ)
์ฌ์ฉ ์์ :
> SET shiba 100
> INCRBY shiba 50
(integer) 150
DECR
์ค๋ช : ์ง์ ๋ ํค์ ๊ฐ์ ์์์ ์ผ๋ก 1์ฉ ๊ฐ์์ํจ๋ค. (์ ์ํ ๊ฐ๋ง ๊ฐ๋ฅ)
์ฌ์ฉ ์์ :
> SET shiba 100
> DECR shiba
(integer) 99
DECRBY
์ค๋ช : ์ง์ ๋ ํค์ ๊ฐ์ ์ง์ ๋ ์ซ์๋งํผ ์์์ ์ผ๋ก ๊ฐ์์ํจ๋ค. (์ ์ํ ๊ฐ๋ง ๊ฐ๋ฅ)
์ฌ์ฉ ์์ :
> SET shiba 100
> DECRBY shiba 50
(integer) 50
MSET
์ค๋ช : ํ ๋ฒ์ ์ฌ๋ฌ ํค๋ฅผ ์ค์ ํ๋ค.
์ฌ์ฉ ์์ :
> MSET shiba 10 holic 20
MGET
์ค๋ช : ํ ๋ฒ์ ์ฌ๋ฌ ํค๋ฅผ ์กฐํํ๋ค.
์ฌ์ฉ ์์ :
> MGET shiba holic
1) "10"
2) "20"
์ฑ๋ฅ์ด ์ค์ํ ๋๊ท๋ชจ ์์คํ ์์ MSET, MGET์ ์ปค๋ฉ๋๋ฅผ ์ ์ ํ๊ฒ ์ฌ์ฉํ๋ค๋ฉด ๋คํธ์ํฌ ํต์ ์๊ฐ์ ์ค์ฌ์ ์๋น์ค ์๋ต ์๋๋ฅผ ํฅ์ํ ์ ์๋ค.
์ฃผ์์ฌํญ
๋๋ถ๋ถ์ ๋ฌธ์์ด ์ฐ์ฐ์ O(1)์ด๋ฏ๋ก ๋งค์ฐ ํจ์จ์ ์ด๋ค. ๊ทธ๋ฌ๋ O(n)์ด ๋ ์ ์๋ SUBSTR, GETRANGE, ๋ช ๋ น์๋ ์ฃผ์ํด์ผ ํ๋ค. ์ด๋ฌํ ๋ฌด์์ ์ก์ธ์ค ๋ฌธ์์ด ๋ช ๋ น์ ํฐ ๋ฌธ์์ด์ ์ฒ๋ฆฌํ ๋ ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ์ผ์ผํฌ ์ ์๋ค.
๐ญ REFERENCE
https://redis.io/docs/data-types/strings/
๋๊ธ