Redis学习笔记---数据类型二(set、sortedset)

这篇是接着上篇来的,因此标号就继续了~~~~ 数组

4、set spa

     介绍:
    set集合元素是不重复的无序的。set类型与list类型有类似之处,如图:
    
    
    命令:
    ①sadd/smembers/srem/sismember  添加/获取/删除/是不是set的元素
        sadd set a,sadd set b,
        smembers set(返回set集合全部的元素) srem set a, sismember b
        sadd set1 a b c
    ②sdiff/sinter(交集)/sunion(并集)
        sdiif set set1 返回差集,即返回set有的而set2中没有
        sinter set set1 返回两个set都有的
        sunion set set1 返回两个的都有的
    ③sdiffstore/sinterstore/sunionstore
        将②中的数据存储  sdiffstore a1 set set1 存到a1中 a1也是一个set集合
    ④scard(获取集合长度)/spop(随机从集合中取出并删除一个元素)
        scard set 返回set集合长度,spop set 随机从set中弹出一个元素
    ⑤srandmember key [count]
        若是 count 为正数,且小于集合基数,那么命令返回一个包含 count 个元素的数组,数组中的元素各不相同。
ip

        若是 count 大于等于集合基数,那么返回整个集合。
        若是 count 为负数,那么命令返回一个数组,数组中的元素可能会重复出现屡次,而数组的长度为 count 的绝对值。
内存

5、sortedset     rem

    介绍:
    有序集合,在set集合类型的基础上为集合中的每一个元素都关联了一个分数,这样能够很方便的得到分数最高的N个元素(topN)。
    有序集合类型和列表类型的差别
    相同点
        (1)两者都是有序的
        (2)两者均可以得到某一范围的元素
    不一样点
        (1)列表类型是经过双向链表实现的,获取靠近两端的数据速度极快,当列表中元素增多后,访问中间的数据速度会很慢,因此它比较适合不多访问中间元素的应用
        (2)有序集合类型是使用散列表和跳跃表(skip list)实现的,因此即便读取位于中间部分的数据速度也很快
        (3)列表中不能简单的调整某个元素的位置,可是有序集合能够(经过更改这个元素的分值)
        (4)有序集合要比列表类型更耗费内存
    命令:
    ①zadd/zscore/zrange/zrevrange/  添加/获取指定元素分数/从小到大返回/从大到小返回
        zadd zset 10 a zadd zset 20 b zadd zset 5 c
        zscore zset b(返回20)
        zrange zset 0 -1 返回(c a b)有序
        zrevrange zset 0 -1 (b a c)
    ②zrangebyscore(默认是闭区间,可以使用"("使用开区间)
        zrangebyscore zset 0 10 获取zset中0分到10分的元素 这里返回c和a
        zrangebyscore zset 0 (10 获取zset中0分到10分的元素 这里返回c
    ③zincrby/zcard/zcount(获取指定分数范围的元素个数)
        zincrby zset 6 c 让zset中c元素的值加6
        zcard zset 返回zset中元素个数
        zcount zset 0 10 指定分数范围的元素
    ④zrem/zremrangebyrank/zremrangebyscore
        zrem zset a
        zremrangebyrank zset 0 1 角标区间删除
        zremrangebyscore zset 0 10 分数范围删除
扩展:+inf(正无穷)    -inf(负无穷)
io

相关文章
相关标签/搜索