zoukankan      html  css  js  c++  java
  • Redis学习第五课:Redis Set类型及操作

    Set是集合,它是string类型的无序集合。set是通过hash table实现的,添加、删除和查找的复杂度都是O(1)。

    对集合我们可以取并集、交集、差集。通过这些操作我们可以实现SNS中的好友推荐和blog的tag功能。

    Set集合操作:

    sadd:向名称为Key的set中添加元素,同一集合中不能出现相同的元素值。(用法:sadd set集合名称 元素值)

    127.0.0.1:6379> sadd myset1 hello

    (integer) 1

    127.0.0.1:6379> sadd myset1 world

    (integer) 1

    127.0.0.1:6379> smembers myset1

    1) "hello"

    2) "world"

    127.0.0.1:6379> sadd myset1 hello

    (integer) 0

    srem:删除名称为key的set中的元素。(用法:srem set集合名称 要删除的元素值)

    127.0.0.1:6379> smembers myset1

    1) "hello"

    2) "fine"

    3) "world"

    127.0.0.1:6379> srem myset1 fine

    (integer) 1

    127.0.0.1:6379> smembers myset1

    1) "hello"

    2) "world"

    spop:随机返回并删除名称为key的set中一个元素。(用法:srem set集合名称)

    127.0.0.1:6379> smembers myset1

    1) "hello"

    2) "world"

    127.0.0.1:6379> spop myset1

    "hello"

    127.0.0.1:6379> smembers myset1

    1) "world"

    sdiff:返回所有给定key与第一个key的差集。(用法:sdiff set集合1 set集合2)

    127.0.0.1:6379> smembers myset2

    1) "two"

    2) "one"

    127.0.0.1:6379> smembers myset3

    1) "three"

    2) "two"

    127.0.0.1:6379> sdiff myset2 myset3

    1) "one"

    sdiffstore:返回所有给定key与第一个key的差集,并将结果存为另一个key。(用法:sdiffstore 差集数据存入的集合 set集合1 set集合2)

    127.0.0.1:6379> smembers myset3

    1) "one"

    2) "two"

    3) "four"

    127.0.0.1:6379> smembers myset4

    1) "two"

    2) "one"

    127.0.0.1:6379> sdiffstore myset5 myset3 myset4

    (integer) 1

    127.0.0.1:6379> smembers myset5

    1) "four"

    sinter:返回所有给定key的交集。(用法:sinter set集合1 set集合2)

    127.0.0.1:6379> smembers myset3
    1) "one"
    2) "two"
    3) "four"
    127.0.0.1:6379> smembers myset4
    1) "two"
    2) "one"
    127.0.0.1:6379> sinter myset3 myset4
    1) "two"
    2) "one"

    sinterstore:返回所有给定Set集合的交集,并将结果存为另一个set集合。(用法:sinterstore 交集结果集合 set集合1 set集合2)

    127.0.0.1:6379> smembers myset3
    1) "one"
    2) "two"
    3) "four"
    127.0.0.1:6379> smembers myset4
    1) "two"
    2) "one"
    127.0.0.1:6379> sinterstore myset6 myset3 myset4
    (integer) 2
    127.0.0.1:6379> smembers myset6
    1) "one"
    2) "two"

    sunion:返回所有给定key的并集。(用法:sunion set集合1 set集合2)

    127.0.0.1:6379> smembers myset3
    1) "one"
    2) "two"
    3) "four"
    127.0.0.1:6379> smembers myset4
    1) "two"
    2) "one"
    127.0.0.1:6379> sunion myset3 myset4
    1) "two"
    2) "one"
    3) "four"

    sunionstore:返回所有给定key的并集,并将结果存为另一个set集合。(用法:sunionstore 并集结果集合 set集合1 set集合2)

    127.0.0.1:6379> smembers myset3
    1) "one"
    2) "two"
    3) "four"
    127.0.0.1:6379> smembers myset4
    1) "two"
    2) "one"
    127.0.0.1:6379> sunionstore myset7 myset3 myset4
    (integer) 3
    127.0.0.1:6379> smembers myset7
    1) "two"
    2) "one"
    3) "four"

    smove:从第一个集合中移除一个元素到另一个集合中。(用法:smove 集合1 集合2 要移除的元素值)

    127.0.0.1:6379> smembers myset7
    1) "two"
    2) "one"
    3) "four"
    127.0.0.1:6379> smembers myset5
    1) "four"
    127.0.0.1:6379> smove myset7 myset5 one
    (integer) 1
    127.0.0.1:6379> smembers myset5
    1) "one"
    2) "four"

    scard:返回名称为key的set集合的元素个数。(用法:scard 集合1)

     127.0.0.1:6379> smembers myset5
    1) "one"
    2) "four"
    127.0.0.1:6379> scard myset5
    (integer) 2

    sismember:判断某个值是否是集合的元素。(用法:sismember 集合1 指定的元素值)

    127.0.0.1:6379> smembers myset7
    1) "two"
    2) "four"
    127.0.0.1:6379> sismember myset7 two
    (integer) 1
    127.0.0.1:6379> sismember myset7 five
    (integer) 0

    srandmember:随机返回集合中的一个元素,但不删除元素。(用法:srandmember 集合1)

    127.0.0.1:6379> smembers myset3
    1) "one"
    2) "two"
    3) "four"
    127.0.0.1:6379> srandmember myset3
    "four"
    127.0.0.1:6379> srandmember myset3
    "four"

  • 相关阅读:
    win7系统宽带自动断开怎么解决【系统天地】
    Win10系统修复受损文件教程【系统天地】
    win10如何加快开机速度【系统天地】
    Netty核心概念(5)之Channel
    Netty核心概念(4)之Bootstrap
    漫谈NIO(3)之Netty实现
    漫谈NIO(2)之Java的NIO
    漫谈NIO(1)之计算机IO实现
    机器学习实战(二)决策树
    机器学习实战(一)k-近邻算法
  • 原文地址:https://www.cnblogs.com/anny-1980/p/4583514.html
Copyright © 2011-2022 走看看