ποΈπ¨Β μλ νμΈμ, μ΄μμμ! μ΄λ² ν¬μ€ν μμλ Redisμ Lists νμ μ λν΄μ ν¬μ€ν νκ³ μ ν΄μ.
Redisμ Lists λ°μ΄ν° νμ μ μμκ° μλ λ°μ΄ν°μ 컬λ μ μ μ μ₯νλ λ° μ¬μ©ν΄μ. μ΄ λ°μ΄ν° νμ μ μ€λ³΅λ κ°μ νμ©νλ©°, μμͺ½ λμμ λ°μ΄ν°λ₯Ό μΆκ°νκ±°λ μ κ±°ν μ μλ μ μ°ν ꡬ쑰λ₯Ό μ 곡ν΄μ. Listsλ ν(Queue), μ€ν(Stack), λ©μμ§ λκΈ°μ΄(Message Queue) λ±μ μ©λλ‘ νμ©ν μ μμ΄μ.
Listsλ₯Ό μ¬μ©νλ©΄ λ€μκ³Ό κ°μ μμ μ μνν μ μμ΄μ.
λ©μμ§ ν
: λ©μμ§ λΈλ‘μ»€λ‘ νμ©νμ¬ λΉλκΈ° μμ
λ° μ΄λ²€νΈ μ²λ¦¬μ΅μ μ
λ°μ΄νΈ μΆμ
: μ΅μ νλμ μΆμ νκ³ λ΄μ€ νΌλ, νμλΌμΈ, νλ μ€νΈλ¦Όμμ
ν
: λ°±κ·ΈλΌμ΄λμμ** μμ
μ μ²λ¦¬νκ³ μ€μΌμ€λ§νμ¬ μμ€ν
λΆν μ΅μνμμκ° μλ λ°μ΄ν° μ μ₯
: μ£Όλ¬Έ λͺ©λ‘, λ‘κ·Έ, νμ€ν 리 λ± μμκ° μ€μν λ°μ΄ν° μ μ₯Listsλ LPOP λ° RPUSHμ κ°μ λͺ λ Ήμ΄λ₯Ό μ¬μ©νμ¬ λ°μ΄ν°λ₯Ό μΆκ°νκ±°λ μ κ±°νλ©°, λ°μ΄ν°κ° μμ°¨μ μΌλ‘ κ΄λ¦¬λΌμ. Listsλ λ©λͺ¨λ¦¬ λ΄μμ λ°μ΄ν°λ₯Ό μ μ₯νλ―λ‘ λ°μ΄ν° μ½κΈ° λ° μ°κΈ°κ° λΉ λ₯΄λ©°, μ¬λ¬ ν΄λΌμ΄μΈνΈ κ°μ λ°μ΄ν°λ₯Ό 곡μ νκ³ μ²λ¦¬ν λ μ μ©ν΄μ. μ΄μ Lists λ°μ΄ν° νμ μ λ€λ£¨λ λͺ λ Ήμ΄μ λν΄μ μμ보λλ‘ ν κ²μ π₯Έ.
LPUSH
key value [value ...]: ν€μ ν΄λΉνλ 리μ€νΈμ μΌμͺ½μ κ°μ μΆκ°ν΄μ.> LPUSH mylist "apple"
(integer) 1
# result: apple
> LPUSH mylist "banana" "cherry"
(integer) 3
# result: cherry banana apple
RPUSH
key value [value ...]: ν€μ ν΄λΉνλ 리μ€νΈμ μ€λ₯Έμͺ½μ κ°μ μΆκ°ν΄μ.> RPUSH mylist "date" "fig"
(integer) 5
cherry banana apple **date fig**
LPOP
key: ν€μ ν΄λΉνλ 리μ€νΈμμ μΌμͺ½ λμ μμλ₯Ό μ κ±°νκ³ λ°νν΄μ.> LPOP mylist
cherry
RPOP
key: ν€μ ν΄λΉνλ 리μ€νΈμμ μ€λ₯Έμͺ½ λμ μμλ₯Ό μ κ±°νκ³ λ°νν΄μ.> RPOP mylist
fig
LINDEX
key index: ν€μ ν΄λΉνλ 리μ€νΈμ μΈλ±μ€ μμλ₯Ό λ°νν΄μ.> LINDEX mylist 2
apple
LRANGE
key start stop: ν€μ ν΄λΉνλ 리μ€νΈμ μΈλ±μ€μ λ²μλ₯Ό λ°νν΄μ.> LRANGE mylist 1 3
1) banana
2) apple
3) date
> LRANGE mylist 0 -1
cherry banana apple date
*μΈλ±μ€ λ²νΈλ₯Ό μ΄ν΄νκΈ° μ½λλ‘ κ·Έλ €λ³΄μμ΄μ!*
----------------------------------
| 0 | 1 | 2 | 4 |
| -4 | -3 | -2 | -1 |
| cherry | banana | apple | date |
----------------------------------
LLEN
key: ν€μ ν΄λΉνλ 리μ€νΈμ μμ κ°μλ₯Ό λ°νν΄μ(리μ€νΈμ κΈΈμ΄λ₯Ό λ°νν΄μ).> LLEN mylist
4
LINSERT
key BEFORE|AFTER pivot value: ν€μ ν΄λΉνλ 리μ€νΈμ pivotμ μ, λ€μ μμλ₯Ό μΆκ°ν΄μ.> LINSERT mylist BEFORE "banana" "grape"
(integer) 5
# result: cherry grape banana apple date
LSET
key index value: ν€μ ν΄λΉνλ 리μ€νΈμ μΈλ±μ€ μμ κ°μ λ³κ²½ν΄μ.> LSET mylist 2 "lemon"
OK
# result: cherry grape lemon apple date
λ§μ½ ν΄λΉνλ μΈλ±μ€κ° μ‘΄μ¬νμ§ μμΌλ©΄ μλμ κ°μ μλ¬ λ©μμ§κ° μΆλ ₯λΌμ.
LSET mylist 10 "μ½λλ μ΄μ"
>> (error) ERR index out of range
LREM
key count value: ν€μ ν΄λΉνλ 리μ€νΈμμ valueλ₯Ό countλ§νΌ μ κ±°ν΄μ.> LREM mylist 2 "apple"
(integer) 1 # ν κ°μ μμκ° μμ λμμ΄μ.
cherry grape lemon date
lpush
μ lpop
μ μ΄μ©νκ±°λ, rpush
μ rpop
μ μ΄μ©νμ¬, μ€ν(stack)
μ ꡬνν μ μμ΄μ.
lpush
μ rpop
μ μ΄μ©νκ±°λ, rpush
μ lpop
μ μ΄μ©νμ¬, ν(queue)
λ₯Ό ꡬνν μ μμ΄μ.
μ΄λ² ν¬μ€ν μμλ Redisμ Lists λ°μ΄ν° νμ μ λν΄μ μμ보μμ΄μ. Listsλ ν, μ€ν, λ©μμ§ λκΈ°μ΄ λ± λ€μν μ©λλ‘ νμ©ν μ μμΌλ, μ¬λ¬λΆλ€μ μ ν리μΌμ΄μ μ νμ© λ° μμ© λ°©λ²μ λν΄ μ°κ΅¬νμ¬ μ μ©ν μ μκΈ°λ₯Ό λ°λΌμ π.