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]
