一尘不染

从Redis列表中删除特定索引处的元素

redis

是否可以在Redis列表中的特定索引处删除元素?没有真正找到我想要的。有修剪可以让您选择一组特定的元素,LREM可以让您按值删除列表中的项目,但是我没有值。

我发现了一个黑客,您在其中使用LSET将元素的值更改为UID或字符串,例如“ DELETED”,然后您对该值调用LREM。不过,这感觉有点脏。


阅读 610

收藏
2020-06-20

共1个答案

一尘不染

因此,完成我想要的操作的唯一方法是将索引处的值设置为预定字符串,然后按值进行删除。

在此处查看讨论https://groups.google.com/forum/#!topic/redis-
db/c-IpJ0YWa9I

在红宝石如下

@redis.lset("#{@namespace}/#{specified_queue}", index, "DELETED")
@redis.lrem("#{@namespace}/#{specified_queue}", 1, "DELETED")

LSET文档http://redis.io/commands/lset
LREM文档http://redis.io/commands/lrem

2020-06-20