set是集合 , 它是string类型的无序集合 . set是通过hash table 实现的 , 添加、删除和查找的复杂度都是O(1) . 对集合我们可以取并集、交集、差集。通过这些操作我们可以实现sns中的好友推荐和blog的tag功能 .
sadd : 向名称为key的set中添加元素
sadd myset "hello" => 返回1
sadd myset "world" => 返回1
sadd myset "world" => 返回0
srem : 删除名称为key的set中的元素
srem myset "hello" => 返回1
srem myset "hello" => 返回0 //如果集合中没有这个元素,删除时返回0
spop : 随机返回并删除名称为key的set中的一个元素 .
因为set是无序的, 所以这里是随机弹出元素 .
smembers : 查看集合中的所有元素
smembers myset => 返回myset集合的所有元素 .
sdiff : 返回所有给定key与第一个key的差集 .
sdiff myset1 myset2 // 返回myset1集合与myset2集合的差集
sdiffstore : 返回所有给定key与第一个key的差集 , 并将结果存为另一个key
sdiffstore myset4 myset2 myset3 // 将myset2集合与myset3集合的差集保存在myset4集合中 .
sunion : 返回所有给定key的并集
sunion myset1 myset2 // 返回myset1集合与myset2集合的并集
sunionstore : 返回所有给定key的并集
sunionstore myset3 myset1 myset2 // 返回myset1集合与myset2集合的并集