小蚂蚁学习Redis笔记(6)——Redis数据类型之无序集合set类型

无序集合set类型

    set集合,它是string类型的无序集合。set是通过hash table实现的,添加删除和查找的复杂度都是0(1)。对集合我们可以取并集,交集,差集。通过这些操作我们可以实现sns中的好友推荐blog和tag功能。


set常用命令

1.    sadd    向集合中添加元素

    格式:    sadd    myset1    “allen”

    含义:    向无序集合myset1中添加元素allen,成功返回1。

2.    smembers    查看集合中的所有元素

    格式:    smembers    myset1

    含义:    查看集合myset1中的所有元素

3.    srem    删除名称为key的set中的元素

    格式:      srem    myset1    “allen” 

    含义:    从集合myset1中删除一个名为allen的元素

    注意:    删除成功返回1,删除失败返回0。

4.    spop    随机弹出并且删除一个元素

    格式:    spop    myset1    

    含义:    随机从myset1中随机弹出一个元素,并且删除掉。

    注意:    因为set是无序列表,所以只能随机弹出元素。

5.    sdiff    返回两个集合的差集

    格式:    sdiff    myset1    myset2

    含义:    比较两个集合的差集,并且返回myset1中的差集。

    注意:    哪个集合在前,返回哪个集合的差集。比较上例中,返回的是myset1。

6.    sdiffstore    返回两个集合的差集,并且把返回的差集放入第三个集合中

    格式:    sdiffstore    myset3    myset1    myset2

    含义:    比较集合myset1和myset2的差集,并且放入第三个集合myset3中。

7.    sinter    返回给定集合的交集。

    格式:    sinter    myset1    myset2

    含义:    比较集合myset1和myset2的交集,并且返回。

8.    sinterstore    返回给定集合的交集,并且把返回的交集放入第三个集合中

    格式:    sinterstore    myset4    myset1    myset2

    含义:    比较集合myset1和myset2的交集,并且放入第三个集合myset4中

9.    sunion    返回给定集合的并集。

    格式:    sunion    myset1    myset2

    含义:    比较集合myset1和myset2的并集,并且返回。

10.    sunionstore    返回给定集合的并集,并且把返回的交集放入第三个集合中

    格式:    sunionstore    myset5    myset1    myset2

    含义:    比较集合myset1和myset2的并集,并且放入第三个集合myset5中

11.    smove    从一个集合中拿出一个元素,并且放入到另一个集合中去。

    格式:    smove    myset1    myset2    “allen1”

    含义:    从集合myset1中拿出allen1,放置到集合myset2中去。成功返回1,失败返回0。 

    例子:    

            127.0.0.1:6379> smembers myset1

            1) "allen1"

            2) "1"

            3) "2"

            4) "3"

            127.0.0.1:6379> smembers myset2

            1) "3"

            2) "5"

            127.0.0.1:6379> smove myset1 myset2 "allen1"

            (integer) 1

            127.0.0.1:6379> smembers myset2

            1) "allen1"

            2) "5"

            3) "3"

            127.0.0.1:6379> 

            127.0.0.1:6379> smembers myset1

            1) "1"

            2) "2"

            3) "3"

12.    scard    返回集合中元素的个数

    格式:    scard    myset1

    含义:    返回集合myset1中,元素的个数。

13.    sismember    判断元素是否属于这个集合

    格式:    sismember    myset2    "allen1"

    含义:    判断元素allen1,是否属于集合myset2。是,返回1,不是,返回0。

14.    srandmember    随机返回一个元素,但不删除。

    格式:    srandmember    myset2

    含义:    随机返回集合myset2中的一个元素,但是不删除。和spop形成对比,spop是弹出,也就是会删除的。


学PHP的小蚂蚁 原创博客 http://my.oschina.net/woshixiaomayi/blog



你可能感兴趣的:(redis)