美文网首页
set类型操作2

set类型操作2

作者: 闲云野鹤_23dd | 来源:发表于2020-12-14 19:17 被阅读0次

SPOP

语法

SPOP key

移除并返回集合中的一个随机元素。

如果只想获取一个随机元素,但不想该元素从集合中被移除的话,可以使用 SRANDMEMBER key [count] 命令。

返回值:
被移除的随机元素。 当 key 不存在或 key 是空集时,返回 nil 。

例子

redis> SMEMBERS db
1) "MySQL"
2) "MongoDB"
3) "Redis"

redis> SPOP db
"Redis"

redis> SMEMBERS db
1) "MySQL"
2) "MongoDB"

redis> SPOP db
"MySQL"

redis> SMEMBERS db
1) "MongoDB"

SRANDMEMBER

语法

SRANDMEMBER key [count]

如果命令执行时,只提供了 key 参数,那么返回集合中的一个随机元素。

如果 count 为正数,且小于集合基数,那么命令返回一个包含 count 个元素的数组,数组中的元素各不相同。如果 count 大于等于集合基数,那么返回整个集合。

如果 count 为负数,那么命令返回一个数组,数组中的元素可能会重复出现多次,而数组的长度为 count 的绝对值。

该操作和 SPOP key 相似,但 SPOP key 将随机元素从集合中移除并返回,而 SRANDMEMBER 则仅仅返回随机元素,而不对集合进行任何改动。

返回值:
只提供 key 参数时,返回一个元素;如果集合为空,返回 nil 。 如果提供了 count 参数,那么返回一个数组;如果集合为空,返回空数组。

例子

# 添加元素

redis> SADD fruit apple banana cherry
(integer) 3

# 只给定 key 参数,返回一个随机元素

redis> SRANDMEMBER fruit
"cherry"

redis> SRANDMEMBER fruit
"apple"

# 给定 3 为 count 参数,返回 3 个随机元素
# 每个随机元素都不相同

redis> SRANDMEMBER fruit 3
1) "apple"
2) "banana"
3) "cherry"

# 给定 -3 为 count 参数,返回 3 个随机元素
# 元素可能会重复出现多次

redis> SRANDMEMBER fruit -3
1) "banana"
2) "cherry"
3) "apple"

redis> SRANDMEMBER fruit -3
1) "apple"
2) "apple"
3) "cherry"

# 如果 count 是整数,且大于等于集合基数,那么返回整个集合

redis> SRANDMEMBER fruit 10
1) "apple"
2) "banana"
3) "cherry"

# 如果 count 是负数,且 count 的绝对值大于集合的基数
# 那么返回的数组的长度为 count 的绝对值

redis> SRANDMEMBER fruit -10
1) "banana"
2) "apple"
3) "banana"
4) "cherry"
5) "apple"
6) "apple"
7) "cherry"
8) "apple"
9) "apple"
10) "banana"

# SRANDMEMBER 并不会修改集合内容

redis> SMEMBERS fruit
1) "apple"
2) "cherry"
3) "banana"

# 集合为空时返回 nil 或者空数组

redis> SRANDMEMBER not-exists
(nil)

redis> SRANDMEMBER not-eixsts 10
(empty list or set)

SREM

语法

SREM key member [member …]

移除集合 key 中的一个或多个 member 元素,不存在的 member 元素会被忽略。

当 key 不是集合类型,返回一个错误。

返回值:
被成功移除的元素的数量,不包括被忽略的元素。

例子

# 测试数据

redis> SMEMBERS languages
1) "c"
2) "lisp"
3) "python"
4) "ruby"

# 移除单个元素

redis> SREM languages ruby
(integer) 1

# 移除不存在元素

redis> SREM languages non-exists-language
(integer) 0

# 移除多个元素

redis> SREM languages lisp python c
(integer) 3

redis> SMEMBERS languages
(empty list or set)

相关文章

  • redis的五种数据类型

    string类型操作 List类型操作 set类型操作 hash类型操作(散列) sort set类型操作

  • set类型操作2

    SPOP 语法 移除并返回集合中的一个随机元素。 如果只想获取一个随机元素,但不想该元素从集合中被移除的话,可以使...

  • redis入门

    list类型操作 list可以有重复元素 set类型操作 hash类型操作 存储的是映射 sort set类型

  • Day09 常用集合以及集合操作符

    1、数组类型2、集合类型1、List2、Map3、Set3、集合操作符操作符1、toMutableList()2、...

  • redis命令行操作

    redis命令 string类型操作 hash类型相关操作 list类型相关操作 set类型相关操作 zset类型...

  • redis学习之六:set类型及操作

    set 是string类型的无序集合(元素不重复)。2的32次方 hashtable实现 set操作: 操作结果见下图:

  • redis 学习(6)-- 集合类型

    redis 学习(6)-- 集合类型 set 结构 无序 无重复 集合间操作 set 集合内操作 演示 实战 抽奖...

  • set类型操作4

    SUNION 语法 返回一个集合的全部成员,该集合是所有给定集合的并集。不存在的 key 被视为空集。 返回值并集...

  • set类型操作3

    SMOVE 语法 将 member 元素从 source 集合移动到 destination 集合。 SMOVE ...

  • set类型操作1

    set类型 又称 集合 与list(列表)类型相似,不过set中的元素 不允许重复,而list允许元素重复 SAD...

网友评论

      本文标题:set类型操作2

      本文链接:https://www.haomeiwen.com/subject/ypefiktx.html