ποΈπ¨Β μλ νμΈμ, μ΄μμμ! μ΄λ² ν¬μ€ν μμλ λ λμ€ λ°μ΄ν° νμ μ€ νλμΈ Strings νμ μ λν΄μ μμλ³΄κ³ μ ν΄μ.
Strings
νμ
μ νλ‘κ·Έλλ°μμ λ¬Έμμ΄ λ°μ΄ν°λ₯Ό μ μ₯νλ λ° μ¬μ©λλ λ°μ΄ν° νμμ΄μμ. λ¬Έμμ΄μ μμλ°μ΄ν('')
λ ν°λ°μ΄ν("")
λ‘ λ¬Άμ΄μ λνλ΄λ©°, λ¬Έμμ΄ μμλ λ¬Έμ, μ«μ, 곡백, νΉμ λ¬Έμ λ± λͺ¨λ μ’
λ₯μ λ¬Έμλ₯Ό ν¬ν¨ν μ μμ΄μ. Strings νμ
μ μΊμ±, μΈμ
κ΄λ¦¬, μΉ΄μ΄ν°, μ€μ κ΄λ¦¬ λ± λ€μν μ©λλ‘ νμ©λλ©°, λΉ λ₯Έ μ½κΈ° λ° μ°κΈ° μ±λ₯μ μ 곡ν΄μ. μ΄μ Strings νμ
μ μ¬μ©νλ λ°©λ²μ λν΄μ μμλ³Όκ²μ.
Redisμμ μ£Όλ‘ μ¬μ©νλ λͺ λ Ήμ΄ 10κ°λ₯Ό μκ° λ릴κ²μ. λ λ§μ λͺ λ Ήμ΄λ₯Ό μμλ³΄κ³ μΆμΌμλ€λ©΄, μλμ 곡μ λ¬Έμλ₯Ό μ°Έκ³ ν΄ μ£ΌμΈμ π₯Έ.
SET
key value: μ£Όμ΄μ§ ν€(key)μ λ¬Έμμ΄ κ°μ μ μ₯ν΄μ.
> SET mykey "Hello, Redis"
OK
GET
key: μ£Όμ΄μ§ ν€(key)μ λν λ¬Έμμ΄ κ°μ λ°νν΄μ.
> GET mykey
"Hello, Redis"
DEL
key [key ...]: νλ μ΄μμ ν€(key)μ μ°κ²°λ κ°μ μμ ν΄μ.
> DEL mykey
(integer) 1
INCRBY
key increment: μ£Όμ΄μ§ ν€(key)μ μ μ₯λ μ«μ κ°μ μ£Όμ΄μ§ increment λ§νΌ μ¦κ°μμΌμ.
> SET mycounter 10
OK
result: mycounter: 10
> INCRBY mycounter 5
(integer) 15
DECRBY
key decrement: μ£Όμ΄μ§ ν€(key)μ μ μ₯λ μ«μ κ°μ μ£Όμ΄μ§ decrement λ§νΌ κ°μμμΌμ.
> SET mycounter 20
OK
> DECRBY mycounter 8
(integer) 12
APPEND
key value: μ£Όμ΄μ§ ν€(key)μ μ μ₯λ λ¬Έμμ΄ λμ μΆκ° λ¬Έμμ΄ κ°μ λΆμ¬μ.
> SET mystring "Hello, "
OK
> APPEND mystring "Redis"
(integer) 12
result: "Hello, Redis"
STRLEN
key: μ£Όμ΄μ§ ν€(key)μ μ μ₯λ λ¬Έμμ΄μ κΈΈμ΄λ₯Ό λ°νν΄μ.
> STRLEN mystring
(integer) 12
SETNX
key value: μ£Όμ΄μ§ ν€(key)κ° μ‘΄μ¬νμ§ μμ λμλ§ λ¬Έμμ΄ κ°μ μ μ₯ν΄μ.
> SETNX mystring "New Value"
(integer) 0 // μ΄λ―Έ ν€κ° μ‘΄μ¬νκΈ° λλ¬Έμ κ°μ ν λΉν μ μμ΄μ.
> SETNX newKey "New Value"
(integer) 1 // κΈ°μ‘΄μ newKeyκ° μ‘΄μ¬νμ§ μκΈ° λλ¬Έμ ν€μ κ°μ ν λΉνμ΄μ.
NX
μ λ»μ Not eXistsμ μ½μμμ. λ§μ½ "mykey" ν€κ° μ΄λ―Έ μ‘΄μ¬νλ€λ©΄ λμνμ§ μμμ.
SETEX
key seconds value: μ£Όμ΄μ§ ν€(key)μ λ¬Έμμ΄ κ°μ μ μ₯νκ³ λ§λ£ μκ°(μ΄)μ μ€μ ν΄μ.
> SETEX mykey 60 "μ½λλ μ΄μ"
OK
GET mykey
> μ½λλ μ΄μ
GET mykey // 60μ΄ ν
> (nil)
EXλ EXpiresμ μ½μμμ. 60μ΄ νμ "mykey" ν€μ κ°μ΄ μμ λΌμ.
GETSET
key value: μ£Όμ΄μ§ ν€(key)μ μ μ₯λ μ΄μ κ°μ κ°μ Έμ€κ³ μλ‘μ΄ κ°μ μ€μ ν΄μ.
> SET mykey "Old Value"
OK // κΈ°μ‘΄μ ν€κ° μ‘΄μ¬νμ§ μλλ€λ©΄ (nil)μ λ°νν΄μ.
> GETSET mykey "New Value"
"Old Value"
Redisλ₯Ό μ¬μ©ν OTP(One-Time Password) ꡬνμ 보μ λ° μΈμ¦ μμ€ν μμ λ§€μ° μ μ©ν΄μ. OTPλ ν λ²λ§ μ¬μ©ν μ μλ λΉλ°λ²νΈλ‘, λ‘κ·ΈμΈ λ° μΈμ¦ νλ‘μΈμ€μμ 보μμ κ°ννλ λ° μ¬μ©λΌμ.
SETEX
λͺ
λ Ήμ΄λ₯Ό μ¬μ©νμ¬ λ λμ€μ μ μ₯ν΄μ.λΆμ° λ½μ΄λ λ€μμ νλ‘μΈμ€μμ λμΌν μμμ μ κ·Όν λ λμμ± λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄ μ¬μ©λΌμ. μλ₯Ό λ€μ΄ μλμ κ°μ΄ 100μΌλ‘ μ‘΄μ¬νκ³ μμ λ λμμ Aλ 20μΌλ‘ μ€μ΄κ³ Bλ 20μ λμΌ κ²½μ°, Aλ 80μ κΈ°λνκ³ Bλ 120μ κΈ°λνμ§λ§, 리ν΄κ°μ 100μ λ°μμ. λ°λΌμ μ΄λ¬ν λμμ± λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄ Redisλ₯Ό νμ©ν΄ λΆμ°λ½μ ꡬνν μ μμ΄μ.
SETNX lock:coke βlockedβ
EXPIRE lock:coke 30
DEL lock:coke
Redisμ Strings λ°μ΄ν° νμ κ³Ό κ΄λ ¨λ λͺ λ Ήμ΄ 10κ°μ§μ μ¬μ© μμλ₯Ό ν΅ν΄ Redisμ κ°λ ₯ν κΈ°λ₯μ μμ보μμ΄μ. Stringsλ λ€μν λ°μ΄ν° μ²λ¦¬ μμ μ μ§μνλ©°, λΆμ°λ½κ³Ό OTP κ°μ μ€μν μλ리μ€μμλ νμ©λΌμ. Redisλ₯Ό ν΅ν΄ λ°μ΄ν°λ₯Ό ν¨μ¨μ μΌλ‘ μ μ₯, κ²μ λ° μ‘°μνλ λ°©λ²μ μ΄ν΄νμ ¨κΈΈ λ°λΌμπ.