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
       

  • 相关阅读:
    OpenWrt 上安装 AdGuard Home
    java网络编程
    如何进行数据库选型
    银行业务中台
    数仓|大数据时代,维度建模过时了吗?
    spqrk相关
    Apache Doris在美团外卖数仓中的应用实践
    hadoop的简单规划
    数据中台建设
    银行数仓分层
  • 原文地址:https://www.cnblogs.com/mr-amazing/p/3981891.html
Copyright © 2011-2022 走看看