zoukankan      html  css  js  c++  java
  • redis基本数据结构-集合set

    redis基本数据结构-集合set

     

    • 特性
    • 一个集合键最多存储 2^32 - 1 个字符串值
    • 元素在集合内无序(哈希表-链地址法解决冲突)
    • 元素在集合内唯一

     


      

    • 向集合添加元素
    sadd key  value1 value2 ...
    sadd letters a b c d

    返回4(实际添加的元素个数), letters = {a, b, c, d},无序,只为指示集合中的值

     

    • 从集合删除元素(只删除且只返回实际删除了的个数,而不返回删除的元素值)
    srem key value1  value2 ...
    srem a c 

     返回2(实际删除的元素个数), letters = {b, d}

     

    • 获取集合中的所有元素
    smembers key
    smembers  letters

     letters = {b, d}

     

    • 判断元素是否在集合中
    sismember key value
    sismember  letters b

     返回1

    sismember letters a

     返回0

     

     

    • 相减运算
    sdiff  key1  key2 ...

     说明:  sdiff key1 key2 === {x | x∈key1  and x∉key2}

    sadd letters a c 
    sadd letters2 a b c
    sdiff letters letters2

    letters = {a, b, c, d}

    letters = {a, b , c}

    返回{d}

     

    • 相交运算
    sinter  key1  key2 ...
    sinter letters  letters2

     返回 {a, b, c} 

     

    • 并集运算
    sunion  key1  key2 ...
    sunion  letters  letters2 

    返回 {a, b, c, d}

     

     

    • 获取集合中的元素总数
    scard   key
    scard  letters

     返回 4,  letters = {a, b, c, d}

     

     

    随机获取集合中的(指定个数)元素

    srandmember  key [count]

    当 不指定count,返回1个

    当 count > 0,返回count不重复的,如果count > scard key ,则返回全部

    当 count < 0,返回abs(count)个可能会重复的,如果abs(count) > scard key,则返回可能重复的abs(count)个

    letters = {a, b, c, d}

    srandmember  letters

     返回 b,随机的,不一定是b

    srandmember lettters   -3

     返回{a, b, a},随机的,不一定是这3个

     

     

    • 进行集合运算并将计算结果存储在一个key中

    key1 key2 ... 等键做diff运算后存储在key中

    sdiffstory  key   key1  key2 ...

     

     

    • key1 key2 ... 等键做交集运算后存储在key中 
    sinter key  key1  key2 ...

     

     

    •  key1 key2 ... 等键做并集运算后存储在key中
    sunion  key  key1  key2 ...

      

     

    • 从集合中弹出某个元素(随机删除并返回元素值,区别于srem)
    spop  key
    spop  letters

     返回 a,随机的,不一定是a

     

    **********************技术交流请 email:cuihao0532#163.com 欢迎转载,转载请注明出处!***************************** 如果对本文满意请扫描文章左侧【二维码添加微信】获取更多好玩、有趣、有益、有营养的料, 你我共同成长!Y(^_^)Y
  • 相关阅读:
    Linux(centos7)安装maven3.5
    mysql安装错误之->ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
    CentOS7 安装tomcat为系统服务器 Systemctl管理Tomcat,并设置开机启动
    linux(centos)设置tomcat开机启动
    linux(centos7)安装tomcat
    修改Tomcat8w.exe可执行路径:Path to executable
    CentOS 7更改yum源与更新系统
    最全的PHP开发Android应用程序
    Cookies的各方面知识(基础/高级)深度了解
    使用Hash直接登录Windows(HASH传递)
  • 原文地址:https://www.cnblogs.com/cuish/p/14706920.html
Copyright © 2011-2022 走看看