zoukankan      html  css  js  c++  java
  • redis sets类型及操作

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

        sadd
        向集合中添加元素,成功返回1,失败返回0,重复值添加为失败
        例如:
        sadd myset1 hello

        smembers
        查看集合中的元素
        例如:
        smembers myset1

        scard
        查看集合中的元素个数
        例如:
        scard myset1

        sismember
        测试元素在不在集合中,存在返回1,不存在返回0
        例如:
        sismember myset1 two  

        srem
        删除集合中的元素,成功返回1,失败返回0
        例如:
        srem myset1 hello

        spop
        随机从集合中弹出一个元素,并删除,返回弹出元素的值
        例如:
        spop myset1

        sdiff
        返回第一个集合在第二个集合中的差集部分
        例如:
        myset1 中有 three two
        myset2 中有 two one
        sdiff myset1 myset2  //不会返回 three one 只会返回 three

        sdiffstore
        返回第一个集合在第二个集合中的差集部分,并将结果保存到另一个集合中
        例如:
        sdiffstore myset4 myset2 myset3  //把myset2在myset3中的差集保存在myset4中

        sinter
        返回所有集合的交集
        例如:
        sinter myset1 myset2

        sinterstore
        返回所有集合的交集,并保存,用法同sdiffstore

        sunion
        返回所有集合的并集
        例如:
        sunion myset1 myset2

        sunionstore
        返回所有集合的并集,并保存,用法同sdiffstore

        smove
        把第一个集合中的指定元素,移动到第二个集合
        例如:
        smove myset2 myset1 three

        srandmember
        随机返回集合中的一个元素,不删除元素

    sorted sets
    是对set的一个升级版本,它在set的基础上增加了一个顺序属性,这个属性在添加修改元素的时候可以指定,每次指定后,zset会自动重新按新的值调整顺序。

        zadd
        向集合中添加元素,member,score用于排序,如果该元素存在,则更新其顺序
        例如:
        zadd myzset1 1 one

        zrange
        查看zset集合中的元素
        例如:
        zrange myzset1 0 -1 withscores    //withscores 输出顺序号,不是必须

        zrem
        删除值为指定的元素
        例如:
        zrem myset1 two

        zincrby
        向集合中添加元素,如果元素已经存在,则该元素的score增加increment的值,否则向该集合中添加该元素,其score的值为increment
        例如:
        zincrby myzset1 2 four

        zrank
        返回集合中元素的排名,按score从小到大的顺序,即下标,和数组一样从0开始
        例如:
        zrank myzset1 four

        zrevrank
        和zrank一样,不同是从大到小排序

        zrevrange
        返回集合中的结果,降序排序
        例如:
        zrevrange myzset1 0 -1 withscores

        zrangebyscore
        返回指定返回的元素
        例如
        zrangebyscore myzset1 2 3 withscores
        
        zcount
        返回集合中score在给定区间的元素的数量
        例如:
        zcount myzset1 2 4

        zremrangebyrank
        删除集合中指定索引范围内的元素
        例如:
        zremrangebyrank myzset1 1 3

        zremrangebyscore
        删除集合中指定score范围内的元素
        例如:
        zremrangebyscore myzset1 1 2
       

  • 相关阅读:
    POJ3320 Jessica's Reading Problem
    POJ3320 Jessica's Reading Problem
    CodeForces 813B The Golden Age
    CodeForces 813B The Golden Age
    An impassioned circulation of affection CodeForces
    An impassioned circulation of affection CodeForces
    Codeforces Round #444 (Div. 2) B. Cubes for Masha
    2013=7=21 进制转换
    2013=7=15
    2013=7=14
  • 原文地址:https://www.cnblogs.com/mr-amazing/p/3981891.html
Copyright © 2011-2022 走看看