Redis可以通過LINDEX key index
獲取list中的特定值, 但無法直接刪除特定索引下的值.
LSET
與LREM
結合刪除list中特定索引的值
兩步:
- 先用
LSET
在指定索引位置上設置特殊值:LSET key index value
在指定索引位置的值替換為value
- 再用
LREM
刪除該特殊值:LREM key n value
, 從左邊刪除n個value
例如刪除list1
索引3對應的在值
LSET list1 3 del
LREM list1 1 del
補充
在Redis中, list是雙向鏈表有兩種索引:
- 正向索引:
0, 1, 2, 3, ...
- 逆向索引:
-1, -2, -3, ...
與刪除的相關的操作有:
LPOP / RPOP key
: 從左邊/右邊彈出一個值LREM key n value
: 從左邊刪除n個valueLTRIM key begin-index, end-index
: 僅保留指定區間的元素
Redis的區間都是閉區間, [begin-index, end-index]