Redis命令学习-Set(集合)

1. SADD

    SADD key member[member ...]:将一个或者多个member计入集合key中去,已经存在集合中的member将会被忽略。计入key不存在,则会创建一个包含member元素的集合。当key不是集合时,返回一个错误。

    ​返回值:被添加到集合中的元素的个数。

  
  
  1. 127.0.0.1:6379> SADD bbs "csdn.com"
  2. (integer) 1
  3. 127.0.0.1:6379> SADD bbs "redis.com" "googe.com"
  4. (integer) 2
  5. 127.0.0.1:6379> SADD bbs "redis.com" "mongodb.com"
  6. (integer) 1

2. SCARD 

    ​SCARD key:返回集合中元素的数量。

    ​返回值:集合中元素的数量,当key不存在时,返回0。

  
  
  1. 127.0.0.1:6379> SADD tools pc printer phone
  2. (integer) 3
  3. 127.0.0.1:6379> SCARD tools
  4. (integer) 3
  5. 127.0.0.1:6379>

3. SDIFF

    ​SDIFF key[key ...]:返回一个集合的全部成员,该集合是所有给定集合的差集。

    ​不存在的key被视为空集。

    ​返回值:一个包含差集的成员列表。

  
  
  1. 127.0.0.1:6379> SADD a 2 3 4 5
  2. (integer) 4
  3. 127.0.0.1:6379> SADD b 4 5 6 7 8
  4. (integer) 5
  5. 127.0.0.1:6379> SDIFF a b
  6. 1) "2"
  7. 2) "3"
  8. 127.0.0.1:6379> SDIFF a
  9. 1) "2"
  10. 2) "3"
  11. 3) "4"
  12. 4) "5"
4. SDIFFSTORE 

    ​SDIFFSTORE destination key[key ...] :这个命令与SDIFF命令相似,但是它会把结果保存至destination中。

    ​返回值:结果集合中元素的个数。

  
  
  1. 127.0.0.1:6379> SDIFFSTORE c a b
  2. (integer) 2
  3. 127.0.0.1:6379> SMEMBERS c
  4. 1) "2"
  5. 2) "3"

5. SINTER

   SINTER key[key ... ]:返回一个集合的全部成员,该集合是所有指定集合的交集。

    ​返回值:交集列表。

  
  
  1. 127.0.0.1:6379> SADD a 1 2 3 4
  2. (integer) 4
  3. 127.0.0.1:6379> SADD b 2 4 6 8 10
  4. (integer) 5
  5. 127.0.0.1:6379> SINTER a b
  6. 1) "2"
  7. 2) "4"
  8. 127.0.0.1:6379> SINTER a
  9. 1) "1"
  10. 2) "2"
  11. 3) "3"
  12. 4) "4"
  13. 127.0.0.1:6379> SINTER a c
  14. (empty list or set)

6. SINTERSTORE

    ​SINTERSTORE destination key[key ...] :与SINTER命令相同,只不过将结果存入destination集合中。

    ​返回值:结果集中的成员数量。

  
  
  1. 127.0.0.1:6379> SINTERSTORE d a b
  2. (integer) 2
  3. 127.0.0.1:6379> SMEMBERS d
  4. 1) "2"
  5. 2) "4"

7. SISMEMBER

    ​SISMEMBER key member:判断member是否是集合key的成员。

    ​返回值:是返回1,否则返回0。

  
  
  1. 127.0.0.1:6379> SISMEMBER d 2
  2. (integer) 1

8. SMEMBERS

    ​SMEMBERS key:返回集合key中所有的成员。

    ​返回值:集合中的所有元素。

    ​

  
  
  1. 127.0.0.1:6379> SMEMBERS d
  2. 1) "2"
  3. 2) "4"
  4. 127.0.0.1:6379> SMEMBERS empty
  5. (empty list or set)

9. SMOVE

    ​SMOVE source des member:将member元素从集合source移至des。如果source元素不包含member则什么都不做。如果,des中已存在元素member,则只是将member从source中移除。

    ​该操作是原子性的。

    ​返回值:成功移除返回1,否则返回0。

  
  
  1. 127.0.0.1:6379> SADD songs "a" "b"
  2. (integer) 2
  3. 127.0.0.1:6379> SMOVE songs my_songs "a"
  4. (integer) 1
  5. 127.0.0.1:6379> SMEMBERS songs
  6. 1) "b"
  7. 127.0.0.1:6379> SMEMBERS my_songs
  8. 1) "a"

10. SPOP

    ​SPOP key:移除并返回集合中的一个随机元素。如果只想获取一个随机元素,但是不想移除 的话可以使用SRANDMEMBER。

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

  
  
  1. 127.0.0.1:6379> SADD db mysql mongodb redis
  2. (integer) 3
  3. 127.0.0.1:6379> spop db
  4. "mongodb"
  5. 127.0.0.1:6379> SMEMBERS db
  6. 1) "redis"
  7. 2) "mysql"

11. SRANDMEMBER

    ​SRANDMEMBER key[count]:如果只有key参数则返回集合中的随机元素。

    ​指定count参数,且count > 0,count小于集合长度,则返回一个包含不重复随机元素的子集合,大于集合长度,则返回整体集合。如果count < 0,返回一个数组,数组内的集合可能重复。

  
  
  1. 127.0.0.1:6379> SADD fruit apple banana cherry
  2. (integer) 3
  3. 127.0.0.1:6379> SRANDMEMBER fruit
  4. "cherry"
  5. 127.0.0.1:6379> SRANDMEMBER fruit 3
  6. 1) "apple"
  7. 2) "cherry"
  8. 3) "banana"
  9. 127.0.0.1:6379> SRANDMEMBER fruit -4
  10. 1) "banana"
  11. 2) "cherry"
  12. 3) "banana"
  13. 4) "apple"

 12. SREM


    ​SREM key member[member .. ]:移除集合中的一个或者多个元素,不存在的元素会被自动忽略。

    ​返回值:被成功移除的元素的个数。

  
  
  1. 127.0.0.1:6379> SADD languages c lisp java python ruby
  2. (integer) 5
  3. 127.0.0.1:6379> SREM languages ruby
  4. (integer) 1
  5. 127.0.0.1:6379> SREM languages none
  6. (integer) 0
  7. 127.0.0.1:6379> SREM languages lisp java
  8. (integer) 2

13. SUNION

    ​SUNION key [key ...]:返回一个集合的全部成员,该集合是所有给定集合的并集。

    ​返回值:并集列表。

  
  
  1. 127.0.0.1:6379> SADD songs jan
  2. (integer) 1
  3. 127.0.0.1:6379> SADD mysong tt
  4. (integer) 1
  5. 127.0.0.1:6379> SUNION songs mysong
  6. 1) "jan"
  7. 2) "tt"
  8. 3) "b"
14. SUNIONSTORE

    ​SUNIONSTORE destination key[key .. ]:与SUNION命令 相同,不同是此命令回存储并集到destination集合中。

    ​返回值:集合中元素数量。

  
  
  1. 127.0.0.1:6379> SUNIONSTORE all songs mysong
  2. (integer) 3

15. SSCAN

    ​与SCAN命令相同。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值