Redis 集合(set) 命令

Redis sdiffstore 命令将由第一个集合与所有后续集合之间的差异产生的集合成员存储到指定的key中。如果指定的key已经存在,则覆盖。

说的直白点就是返回第一个集合中有的元素后续集合中没有的元素,并将它存储到指定的key中。

语法:

sdiffstore dest_key key1..keyN  

    可用版本:

    >=1.0.0.

    返回值:

    整数,结果集中的元素个数。

    说明

    mycolor1 = {R G B}

    mycolor2 = {G Y}

    sdiffstore dest_key mycolor1 mycolor2 = {R B}

    第一个集合中有 R和B是第二个集合所没有的所以返回 {R B}

    返回值类型:

    整数

    示例1:Redis sdiffstore

     127.0.0.1:6379> sadd mycolor1 R G B
    (integer) 3
    127.0.0.1:6379> sadd mycolor2 G Y
    (integer) 2
    127.0.0.1:6379> sdiffstore dest_key mycolor1 mycolor2
    (integer) 2
    127.0.0.1:6379> SMEMBERS dest_key
    1) "R"
    2) "B" 
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    示例2:Redis sdiffstore

    sdiffstore destination_key source_key1 source_key2 source_key3。

    mycolor1 = {R G B}

    mycolor2 = {G Y}

    mycolor3 = {B P}

    sdiffstore dest_key mycolor1 mycolor2 mycolor3 = {R}

    第一个集合中有 R是第二个和第三个集合所没有的所以返回 {R}

     127.0.0.1:6379> sadd mycolor3 B P
    (integer) 2
    127.0.0.1:6379> sdiffstore dest_key mycolor1 mycolor2 mycolor3
    (integer) 1
    127.0.0.1:6379> SMEMBERS dest_key
    1) "R" 
    • 1
    • 2
    • 3
    • 4
    • 5