【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)

04_Redis数据类型(set、zset)的更多相关文章

  1. Redis数据类型之ZSet(五)

    前言:有序集合zset跟其他类型一样,同样有几种编码方式.主要有两种编码方式,REDIS_ENCODING_ZIPLIST和REDIS_ENCODING_SKIPLIST.ziplist可以表示较小的 ...

  2. NoSQL 之Redis的5大数据类型

    NoSQL 之Redis的5大数据类型 Redis的五大数据类型也称五大数据对象:了解过6大数据结构,Redis并没有直接使用这些结构来实现键值对数据库,而是使用这些结构构建了一个对象系统redisO ...

  3. Redis常用数据类型以及操作

    Redis常用数据类型以及操作 目录 Redis常用数据类型以及操作 一.String数据类型 1. SET/GET/APPEND/STRLEN 2. INCR/DECR/INCRBY/DECRBY ...

  4. Redis数据类型:五大基本数据类型及三种特殊类型

    String (字符串类型) String是redis最基本的类型,你可以理解成Memcached一模一样的类型,一个key对应一个value. String类型是二进制安全的,意思是redis的st ...

  5. python就业班-淘宝-目录.txt

    卷 TOSHIBA EXT 的文件夹 PATH 列表卷序列号为 AE86-8E8DF:.│ python就业班-淘宝-目录.txt│ ├─01 网络编程│ ├─01-基本概念│ │ 01-网络通信概述 ...

  6. 《Redis开发与运维》读书笔记

    一.初始Redis 1.Redis特性与优点 速度快.redis所有数据都存放于内存:是用C语言实现,更加贴近硬件:使用了单线程架构,避免了多线程竞争问题 基于键值对的数据结构,支持的数据结构丰富.它 ...

  7. GEO(地理信息定位)

    核心知识点: 1.GEO是利用zset来存储地理位置信息,可以用来计算地理位置之间的距离,也可以做统计: 2.命令:geoadd geopos geodist geohash georadius/ge ...

  8. Redis和SpringDataRedis

    一.Redis简介 ​ Redis是用C语言开发的一个开源的高性能键值对(key-value)数据库,运行在内存中,由ANSI C编写.企业开发通常采用Redis来实现缓存.同类的产品还有memcac ...

  9. Redis(三)Redis附加功能

    一.慢查询分析 许多存储系统(例如MySql)提供慢查询日志帮助开发和运维人员定位系统存在的慢操作. 所谓慢查询日志就是系统在命令执行前后计算每条命令的执行时间,当超过预设阈值,就将这条命令的相关信息 ...

随机推荐

  1. THU 上机 最小邮票数 暴力枚举

    链接:https://www.nowcoder.com/questionTerminal/83800ae3292b4256b7349ded5f178dd1?toCommentId=2533792来源: ...

  2. 50行代码实现python计算器主要功能

    实现功能:计算带有括号和四则运算的式子   3*( 4+ 50 )-(( 100 + 40 )*5/2- 3*2* 2/4+9)*((( 3 + 4)-4)-4) 基本思路:使用正则表达式提取出每一层 ...

  3. python学习之路---day12

    生成器和生成器表达式一:生成器 生成器实质上就是迭代器. 三种方式获取生成器: 01:通过生成器函数 02:通过各种推导式实现生成器 03:通过数据的转换也可以获取生成器 eg:普通函数 def fu ...

  4. springMVC下载功能

    前台页面 <a href="download">下载</a> 后台代码 /** * 文件下载 * @param request * @return * @t ...

  5. bzoj1221软件开发 费用流

    题目传送门 思路: 网络流拆点有的是“过程拆点”,有的是“状态拆点”,这道题应该就属于状态拆点. 每个点分需要用的,用完的. 对于需要用的,这些毛巾来自新买的和用过的毛巾进行消毒的,流向终点. 对于用 ...

  6. for( in ) IE下兼容问题

    在JS 中 for in 常用于遍历对象的可枚举属性,包括原型链上的属性.然而for_in在IE < 9下可能会出现问题. for_in要出现问题必须满足两个条件:  1:IE < 9; ...

  7. js栈内存和堆内存的区别

    首先JavaScript中的变量分为基本类型和引用类型.基本类型就是保存在栈内存中的简单数据段,而引用类型指的是那些保存在堆内存中的对象. 1.基本类型 基本类型有Undefined.Null.Boo ...

  8. (转)Cobbler无人值守批量安装Linux系统

    本文目录: 1.1 pxe安装系统 1.2 cobbler基本介绍 1.3 安装和配置cobbler 1.3.1 安装cobbler 1.3.2 配置dhcp和tftp 1.4 cobbler从本地光 ...

  9. Tomcat 启动很慢?

    Tomcat 8启动很慢,在启动中, 发现加载如下类时很慢: org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom 原因 ...

  10. Java Collection.Set

    package 集合; /** * Set不包含重复元素 存储顺序和取出数据不一样 * * HashSet:它不保证set的迭代顺序,特别是它不保证该顺序恒久不变 * 底层是哈希表结构的 * Link ...