Redis 五种常见的数据结构:set

Redis Set 是 String 的无序排列。SADD 指令把新的元素添加到 set 中。对 set 也可做一些其他的操作,比如测试一个给定的元素是否存在,对不同 set 取交集,并集或差,等等。

Set 的特点

  1. Set 里面的数据都是无序的,无法和list一样根据下标进行获取数据。
  2. Set 是不能插入重复元素的。
  3. 可以支持集合和集合间的操作。例如:交集,并集等等。

Set 的数据结构

Redis 五种常见的数据结构:set_第1张图片

Set 的命令

命令 描述
SADD key member [member …] 添加一个或多个指定的member元素到集合的 key中
SREM key member [member …] 在key集合中移除指定的元素.
127.0.0.1:6379> sadd myset 1 2 3
(integer) 3
127.0.0.1:6379> srem myset 2
(integer) 1
127.0.0.1:6379> smembers myset
1) "1"
2) "3"
命令 描述
SCARD key 返回集合存储的key的基数 (集合元素的数量)
SISMEMBER key member 返回成员 member 是否是存储的集合 key的成员
SRANDMEMBER key [count] 仅提供key参数,那么随机返回key集合中的一个元素.
SMEMBERS key 返回key集合所有的元素
SPOP key [count] 从存储在key的集合中移除并返回一个或多个随机元素。
127.0.0.1:6379> scard myset
(integer) 2
127.0.0.1:6379> sismember myset 1
(integer) 1
127.0.0.1:6379> sismember myset 30
(integer) 0
127.0.0.1:6379> srandmember myset 1
1) "3"
127.0.0.1:6379> srandmember myset 2
1) "1"
2) "3"
127.0.0.1:6379> srandmember myset 3
1) "1"
2) "3"
127.0.0.1:6379> smembers myset
1) "1"
2) "3"
127.0.0.1:6379> spop myset
"3"
127.0.0.1:6379> smembers myset
1) "1"

注:
sismember 返回的值为1存在,0为不存在。

SRANDMEMBER 随机取出数据,但不破坏原来的集合
SPOP 从集合中弹出一个数据,破坏了原来的集合。(官网说可以通过这个完成一个 发扑克牌 的应用)

Set 集合间的命令

命令 描述
SDIFF key [key …] 返回一个集合与给定集合的差集的元素
127.0.0.1:6379> sadd key1 a b c d
(integer) 4
127.0.0.1:6379> sadd key2 c
(integer) 1
127.0.0.1:6379> sadd key3 a c e
(integer) 3
127.0.0.1:6379> sdiff key1 key2 key3
1) "b"
2) "d"
命令 描述
SDIFFSTORE destination key [key …] 该命令类似于 SDIFF, 不同之处在于该命令不返回结果集,而是将结果存放在destination集合中。如果destination已经存在, 则将其覆盖重写
127.0.0.1:6379> sdiffstore diffset key1 key2 key3
(integer) 2
127.0.0.1:6379> smembers diffset
1) "b"
2) "d"
命令 描述
SINTER key [key …] 返回指定所有的集合的成员的交集
SINTERSTORE destination key [key …] 这个命令与SINTER命令类似, 但是它并不是直接返回结果集,而是将结果保存在 destination集合中.如果destination 集合存在, 则会被重写.
127.0.0.1:6379> sinter key1 key2 key3
1) "c"
127.0.0.1:6379> sinterstore sinterset key1 key2 key3
(integer) 1
127.0.0.1:6379> smembers sinterset
1) "c"
命令 描述
SUNION key [key …] 返回给定的多个集合的并集中的所有成员.
SUNIONSTORE destination key [key …] 该命令作用类似于SUNION命令,不同的是它并不返回结果集,而是将结果存储在destination集合中.如果destination 已经存在,则将其覆盖.
127.0.0.1:6379> sunionstore sunionset key1 key2 key3
(integer) 5
127.0.0.1:6379> smembers sunionset
1) "d"
2) "c"
3) "e"
4) "a"
5) "b"

Set 还有很多其他的命令,大家可以看下这个链接:
Set 命令大全

之前准备学习的时候写博客,可是都没有坚持下去,希望这次可以有始有终。
Redis 坚持第一天 :为什么要使用 redis ?
Redis 坚持第二天 :Redis 的安装与启动
Redis 坚持第三天 :Redis 使用配置文件启动,常见配置学习。
Redis 坚持第四天 :

  1. Redis 五种常见的数据结构:String
  2. Redis 五种常见的数据结构:Hash
  3. Redis 五种常见的数据结构:List
  4. Redis 五种常见的数据结构:Set

你可能感兴趣的:(redis,从入门到提高,Redis,数据结构,Set)