redis命令入门(set)

427 阅读3分钟

help @set 查看所有set相关命令

1.SADD

SADD key member [member ...]

summary: Add one or more members to a set

since: 1.0.0

添加一个或多个元素,如果元素已经存在则忽略,返回成功添加元素的个数

2.SCARD

SCARD key

summary: Get the number of members in a set

since: 1.0.0

返回存储的key的集合元素的数量

3.SDIFF

SDIFF key [key ...]

summary: Subtract multiple sets

since: 1.0.0

参数接受多个key,返回第一个key与其他key的差集,举例:

k1={1,2,3,4,5},k2={1,3,4},k3={1,4,5},执行 sdiff k1 k2 k3,返回结果为2,也就是说获取k1所有元素在k2,k3中所有的元素中不包含的元素集合

4.SDIFFSTORE

SDIFFSTORE destination key [key ...]

summary: Subtract multiple sets and store the resulting set in a key

since: 1.0.0

SDIFF命令基本相同,区别在于SDIFFSTORE会把返回的结果直接存入一个key中,如果该key已经存在,则直接覆盖

5.SINTER

SINTER key [key ...]

summary: Intersect multiple sets

since: 1.0.0

获取指定多个key集合的交集

6.SINTERSTORE

SINTERSTORE destination key [key ...]

summary: Intersect multiple sets and store the resulting set in a key

since: 1.0.0

获取指定多个key集合的交集,并把结果保存到destination 中,如果destination 集合存在,则直接覆盖

7.SMEMBERS

SMEMBERS key

summary: Get all the members in a set

since: 1.0.0

返回key集合所有的元素

8.SISMEMBER

SISMEMBER key member

summary: Determine if a given value is a member of a set

since: 1.0.0

指定key的列表中是否存在member元素,存在返回1,不存在返回0

9.SPOP

SPOP key [count]

summary: Remove and return one or multiple random members from a set

since: 1.0.0

从存储在key的集合中移除并返回count个随机元素

10.SMOVE

SMOVE source destination member

summary: Move a member from one set to another

since: 1.0.0

把source中的元素member,移动到destination中,如果source 集合不存在或者不包含指定的元素,smove命令不执行任何操作并且返回0

11.SRANDMEMBER

SRANDMEMBER key [count]

summary: Get one or multiple random members from a set

since: 1.0.0

SPOP类似,随机返回key集合中的count个元素,但是SRANDMEMBER不会删除元素

12.SREM

SREM key member [member ...]

summary: Remove one or more members from a set

since: 1.0.0

删除key中的元素member

13.SSCAN

SSCAN key cursor [MATCH pattern] [COUNT count]

summary: Incrementally iterate Set elements

since: 2.8.0

增量迭代一个集合元素,它是一个基于游标的迭代器。这意味着命令每次被调用都需要使用上一次这个调用返回的游标值作为该次调用的游标参数,以此来延续之前的迭代过程,当cursor游标参数被设置为 0 时, 服务器将开始一次新的迭代, 而当服务器向用户返回值为 0 的游标时, 表示迭代已结束

举例:执行SADD k1 a b c d e f g h i j k l m n o p q r s t u v w x y z,执行SSCAN k1 0,返回 14,"d","m","g","e" ,"j","k" ,"z" ,"y","r", "s",第一个数字14代表下一次迭代的游标cursor的值,后面返回的是10个结果,默认返回10个值,也可以设置每次需要返回的个数,比如SSCAN k1 0 count 100COUNT 选项的作用就是让用户告知迭代命令, 在每次迭代中应该从数据集里返回多少元素,如果要在key的列表中查询某些特定的值,比如以x开头的值,则可以使用match,比如 SSCAN k1 0 match x* count 100

14.SUNION

SUNION key [key ...]

summary: Add multiple sets

since: 1.0.0

返回给定的多个key集合的并集中的所有成员

15.SUNIONSTORE

SUNIONSTORE destination key [key ...]

summary: Add multiple sets and store the resulting set in a key

since: 1.0.0

SUNION类似,不同的是它并不返回结果集,而是将结果存储在destination集合中