1
刪除我有一個Redis的列表LPOP或Redis的列表
a, b, c ,d ,e ,f g, h
在我的回調函數,我得到了元素的索引,和我想刪除該索引。
LPOP和RPOP不適合我。如何刪除基於索引的元素而不是redis中的值?
感謝
刪除我有一個Redis的列表LPOP或Redis的列表
a, b, c ,d ,e ,f g, h
在我的回調函數,我得到了元素的索引,和我想刪除該索引。
LPOP和RPOP不適合我。如何刪除基於索引的元素而不是redis中的值?
感謝
一個Redis的名單只是一個雙鏈表,它不應該這樣做。有關於此的討論here: 「列表中的元素不能由索引指向,因爲索引在列表更改時會失效。」
如果您需要通過索引刪除並且元素是唯一的,則可以使用LINDEX + LREM來完成。
假如你希望刪除索引3:
> LINDEX list 3
"d"
> LREM list 1 d
1
另外一個不錯的解決方案應該是使用特殊的字符串來標記刪除的條目,然後運行LREM:
> LSET list 2 DELETE
OK
> LSET list 4 DELETE
OK
> LREM list 0 DELETE
2