我知道rpop刪除了Redis列表的最後一個元素。如何在特定範圍之間彈出列表項(例如:0到100) ?我希望這是lrange + rpop的組合。如何在Redis列表中執行lrange +(從列表中刪除lrange的結果)
2
A
回答
3
您需要lrange和LTRIM結合起來,實現這一目標發送。
http://redis.io/commands/ltrim
要檢索和刪除列表中的第一個100個元素。
lrange list 0 100
ltrim list 0 100
1
據我所知,沒有預定義的命令來彈出列表中的一系列項目。 你必須發送一系列的rpop命令到redis。 Redis通常會發送很多短命令,因此連續發送100個(甚至1000個)rpop命令並不是問題。 爲了提高性能,您可以使用「流水線」在一個操作中發送多個命令。確切的做法取決於你的驅動程序。
另一種方式是寫一個Lua腳本,並使用eval
相關問題
- 1. 關於sails-redis的lrange命令
- 2. 從列表中列表中刪除列表中,如果長度
- 3. 如何從列表中刪除列表中的表
- 4. 從列表中刪除行和列c#
- 5. 在列表中刪除行
- 6. 在Python中,如何從列表(列刪除)刪除第N個列表項?
- 7. 從列表中刪除值從列表中刪除
- 8. 如何刪除列表中的列表,如果一個列表中的元素存在於另一列表中
- 9. 如果列表對象包含東西從列表中刪除
- 10. 如何從字典中的列表中刪除列表元素?
- 11. 如何刪除redis中列表中的所有值?
- 12. 刪除列表中的行
- 13. 刪除列表中的行
- 14. 從tcl列表中刪除子列表
- 15. C#從列表中刪除列表
- 16. 從列表中刪除子列表
- 17. Python - 從列表中刪除空列表
- 18. Python:從列表中刪除列表?
- 19. jQuery:從結果列表中排除「this」
- 20. 從列表的列表中刪除列表,以及更OCaml中
- 21. 如何使用列表理解從列表中的列表中刪除括號?
- 22. 從列表中刪除的項目,如果在比較列表不存在
- 23. 刪除列表項,如果不在另一個列表中 - python
- 24. 如何從結構列表中刪除1結構如果匹配變量?
- 25. 如何從列表中刪除元素
- 26. 如何從列表中刪除對象
- 27. 如何從表中刪除標識列
- 28. 如何從列表中刪除?
- 29. 如何從列表中刪除重複
- 30. 如何從列表中刪除項目
只有ltrim不夠嗎? – Prem
Ltrim的回覆是正確的。如果你想得到你需要的值,在得到它之後,你可以發佈ltrim從列表中刪除它們。將它們組合在一個lua中以使其成爲原子 –
這在幾個層面上是不正確的。首先要獲得你想要做的前100件商品'LRANGE list 0 99',然後就是LTRIM對你所說的話進行相反的處理,它會留下前100個項目並刪除其他所有項目。如果你想刪除前100個項目,你需要做'LTRIM列表100 -1'(即保留從項目100開始的一切) 但更重要的是,這是非常不安全的,因爲這個操作不是原子的,所以列表可能在第一個和第二個語句之間改變 - 你需要弄清楚如何使它成爲原子 – mlasevich