首页 > SQL学习 > Redis的集合操作命令
2019
08-13

Redis的集合操作命令

set是string类型的无序集合,通过哈希表实现,集合内元素不允许重复。每个set可以存储2^32-1个元素(4294967295)

添加/删除命令:

sadd key member [member ...]

    将一个或多个member元素加入到集合key当中,已经存在的member元素将被忽略
    key不存在则创建一个新集合并进行sadd操作
    返回被添加到集合中的新元素的数量(不包括被忽略的元素)

srem key member [member ...]:移除集合key中的一个或多个member元素,不存在的member元素会被忽略,返回被成功移除的元素的数量(不包括被忽略的元素)

smove source destination member

    将member元素从source集合移除并添加到destination集合
    如果member元素被成功移除并添加到指定集合,返回1
    如果source集合不存在或不包含指定的member元素,不执行任何操作,仅返回0

spop key:移除并返回集合中的一个随机元素,当key不存在或key是空集时返回nil

获取命令:

smembers key:返回集合key中的所有成员。不存在的key被视为空集合

srandmember key [count]

    返回集合中指定条件的元素
    不提供count只提供key,返回集合中一个随机元素,如果集合为空返回nil,该操作和spop相似,该操作仅仅返回随机元素,而不对集合进行任何改动
    提供了count参数(假定集合的基数为n):
    0<=count<n:返回一个包含count个key的元素组成的数组,数组中的元素各不相同
    count>=n:返回整个集合
    count<0:返回一个包含count绝对值个key的元素组成的数组,数组中的元素可能会重复出现多次

差集/交集/并集命令:

sdiff key [cut_key ...]

    返回key和sut_key的差集(删除key集合中key和sut_key都包含的元素)的所有元素
    不存在的key或cut_key被视为空集,所以sdiff key会返回key的所有元素

sdiffstore destination key [cut_key ...]

    作用和sdiff类似,但它将结果保存到destination集合,而不是简单地返回结果集。
    如果destination集合已经存在,则将其覆盖
    destination可以是key本身
    返回差集中的元素数量

sinter key [overlap_key ...]

    返回所有给定集合的交集(只保留key和overlap_key都包含的元素)的所有元素
    不存在的key或overlap_key被视为空集,所以sinter key会返回空集

sinterstore destination key [overlap_key ...]

    作用和sinter类似,但它将结果保存到destination集合,而不是简单地返回结果集。
    如果destination集合已经存在,则将其覆盖
    destination可以是key本身
    返回交集中的元素数量

sunion key [key ...]:返回一个或多个集合的并集的全部成员

sunionstore destination key [key ...]

    作用和sunion类似,但它将结果保存到destination集合,而不是简单地返回结果集。
    如果destination集合已经存在,则将其覆盖
    destination可以是key本身
    返回并集中的元素数量

其他命令:

sismember key member

    判断member元素是否集合key的成员
    member是集合的成员返回1
    member不是集合的成员,或key不存在,返回0

scard key:返回key的基数(集合中元素的数量),key不存在时返回0

最后编辑:
作者:qingheluo
这个作者貌似有点懒,什么都没有留下。

留下一个回复

你的email不会被公开。