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

Don*_*son 6 ruby redis

是否可以删除redis列表中特定索引处的元素?没找到我想要的东西.有一个修剪,允许您选择一组特定的元素,LREM允许您按值删除列表中的项目,但我没有值.

我找到了一个hack,你使用LSET将元素的值更改为UID或字符串,例如'DELETED',并且您在此值上调用LREM.这只是感觉有点脏.

Don*_*son 10

因此,实现我想要的唯一方法是将索引处的值设置为预先确定的字符串,然后按值进行删除.

请参阅此处的讨论https://groups.google.com/forum/#!topic/redis-db/c-IpJ0YWa9I

在红宝石中如下

@redis.lset("#{@namespace}/#{specified_queue}", index, "DELETED")
@redis.lrem("#{@namespace}/#{specified_queue}", 1, "DELETED")
Run Code Online (Sandbox Code Playgroud)

LSET docs http://redis.io/commands/lset LREM docs http://redis.io/commands/lrem