redis如何刪除list中特定索引的值


Redis可以通過LINDEX key index獲取list中的特定值, 但無法直接刪除特定索引下的值.

LSETLREM結合刪除list中特定索引的值

兩步:

  1. 先用LSET在指定索引位置上設置特殊值: LSET key index value在指定索引位置的值替換為value
  2. 再用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個value
  • LTRIM key begin-index, end-index: 僅保留指定區間的元素

    Redis的區間都是閉區間, [begin-index, end-index]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM