如何按值从 Redis 列表中删除元素?

Posted

技术标签:

【中文标题】如何按值从 Redis 列表中删除元素?【英文标题】:How to remove element from list in Redis by value? 【发布时间】:2015-08-14 07:05:22 【问题描述】:

例如,我有:

127.0.0.1:6379> lrange POST:544 0 -1
1) "1"
2) "2"
3) "36"
127.0.0.1:6379> 

我只知道值36,而不知道索引。我可以按值从列表中删除元素吗?

【问题讨论】:

【参考方案1】:

http://redis.io/commands/lrem

Lrem 就是您要找的。使用 LREM POST:544 1 36。

【讨论】:

这仅在数值存储在列表中时才有效,对吗?尝试使用存储在列表中的字符串类型,但它不起作用。相反,我确实将列表更改为一组,例如现在可以使用SREM myset "four"【参考方案2】:

如果列表包含字符串,那么您可以用双引号将其括起来,这样就可以了!

例如:sampleList [“一”、“二”、“三”、“四”] 如果要删除“三个”,请使用:

LREM sampleList 1 "three"

【讨论】:

以上是关于如何按值从 Redis 列表中删除元素?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过名称值从数组中删除字典元素[重复]

从Python列表中的特定位置删除项目[重复]

Redis 基础数据结构之二 list(列表)

在 Python 2 中,无论列表的内容如何,​​如何按值而不是引用复制复杂嵌套元素的列表

按值删除向量中的元素

我应该如何在 jna 中按值从 Java 传递和返回 unsigned int 到 C/C++