• 04_Redis数据类型(set、zset)


    【set:集合类型(高中的集合知识)】

    集合类型:无序、不可重复

    列表类型:有序、可重复

    【set类型】

    1.添加元素

    语法:sadd key member1 member2......

    返回值:返回成功添加的元素个数

    2.获取集合中的所有元素

    语法:smembers key

    3.删除集合中某个元素

    4.判断元素是否在集合中

    语法:sismember key member

    返回值:存在,返回1;不存在,返回0。

    【set集合之间的运算】

    1.差集A-B

    描述:属于集合A,但不属于集合B

     语法:sdiff key1 key2...

    2.集合的交集A∩B

    描述:属于集合A 且属于集合B的元素构成的集合

    3.集合的并集A∪B

    描述:属于A或属于B的元素构成的集合。

     

     

    【集合的其他命令】

    1.获取集合中的元素个数

    语法:scard key

    2.从集合中弹出一个元素

    由于集合是无序的,所有SPOP命令会从集合中随机弹出一个元素。

    【SortedSet类型:zset集合】

    sortedSet有叫做zset。

    zset是有序集合,可排序的,但是要唯一。

    zset和set的不同之处在于,zset是会给set的元素添加一个分数,然后通过这个分数进行排序。

    【zset类型】

    1.添加元素

    描述:向有序集合zset中添加一个元素和该元素的分数,如果该集合已经存在则会使用新的分数替换原有的分数。

    返回值:新加入到集合中的元素的个数,不包含之前已经存在的元素。

    语法:zadd key score1 member1 score2 member2 score3 member3......

    2.获取元素的分数

    语法:zscore key member

    3.删除元素

    描述:删除有序集合中的一个或多个成员,不存在的成员被忽略。

    语法:zrem key member1 member2......

    4.获得排名在某个范围内的元素列表

    描述:按照元素分数从小到大的顺序返回索引从start到stop之间的所有元素(包含两端的元素)

    语法:zrange key start stop

    描述:按照元素分数从大到小的顺序返回索引从start到stop之间的所有元素(包含两端的元素)

    语法:zrevrange key start stop 

    描述:如果需要获得元素的分数,可以在尾部加上withscores参数

    语法:zrange key start stop[withscores]

            zrevrange key start stop [withscores]

    5.获取元素的排名

    描述:从小到达获取某个元素的排名

    语法:zrank key member

    描述:从大到小获取某个元素的排名

    语法:zrevrank key member

    6.获取指定分数范围内的元素

    语法:zrangebyscore key min max [withscores] [limit offset count]

     

    7.增加某个元素的分数

    语法:zincrby key increment member

    注意:不可以将increment和member的顺序调换,与之前的不一样

    8.获取集合中元素的数量

    语法:zcard key

    9.获取指定分数范围内的元素个数

    语法:zcount key min max

    10.按照分数排名范围删除元素

    语法:zremrangebyrank key start stop

    11.按照分数范围删除元素

    语法:zremrangebyscore key min max

    【zset应用:商品销售排行榜】

    需求:根据商品销售量对商品进行排名显示。

    思路:定义商品销售排行榜(sorted set集合),key为items:sellsort,分数为商品的销售量。

    写入商品销售量:(编号1001商品,销售量9;编号1002商品,销售量10;编号1003商品,销售量999)

  • 相关阅读:
    Linux下解析域名命令-dig 命令使用详解
    重写、覆盖、重载、多态几个概念的区别分析
    介绍python中运算符优先级
    介绍Python中6个序列的内置类型
    Mysql(Mariadb)数据库主从复制
    winscp中使用sudo的方法
    git push跳过用户名和密码认证配置教程
    案例:通过shell脚本实现mysql数据备份与清理
    毕业季,我的Linux求职之路
    PHP和ajax详解
  • 原文地址:https://www.cnblogs.com/HigginCui/p/6477104.html
Copyright © 2020-2023  润新知