有序集合使用与内部实现原理

有序集合类型 (Sorted Set) 相比于集合类型多了一个排序属性 score(分值),对于有序集合 ZSet 来说,每个存储元素相当于有两个值组成的,一个是有序结合的元素值,一个是排序值。有序集合的存储元素值也是不能重复的,但分值是可以重复的。

当我们把学生的成绩存储在有序集合中时,它的存储结构如下图所示:

学生存储值.png

下面我们先从有序集合的使用开始说起。

1 基础使用

1)添加一个或多个元素

语法:zadd key [NX|XX] [CH] [INCR] score member [score member …] 示例:

127.0.0.1:6379> zadd zset1 10 java
(integer) 1
127.0.0.1:6379> zadd zset1 3 golang 4 sql 1 redis
(integer) 3

可以看出有序集合的添加是 zadd 键值 分值1 元素值1 分值2 元素值2 的形式添加的。

2)查询所有元素列表

语法:zrange key start stop [WITHSCORES] 示例:

127.0.0.1:6379> zrange zset 0 -1
1) "redis"
2) "mysql"
3) "java"

其中 -1 表示最后一个元素,查询结果包含开始和结束元素。

3)查询有序集合的总个数

语法:zcard key

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/545504.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ubuntu12环境下Thin+rails(4)+ruby(2)+nginx+mysql 配置

Ubuntu12环境下Thinrails(4)ruby(2)nginxmysql配置1. 前提条件:已经正确安装了ubuntu12并且更行了源。2. 安装过程:2.1 安装ruby前的准备:1.1修改 /etc/apt/sources.list文件改为mirrors.163.com保存退出…

Oracle 游标的练习

--1、什么是游标?使用游标的基本步骤是什么? /*挡在PL/SQL块中执行查询语句(SELECT)和数据操纵语句(DML)时,Oracle会在内存中分配一个缓冲区,缓冲区中包含了处理过程的必需信息&…

集合使用与内部实现原理

集合类型 (Set) 是一个无序并唯一的键值集合。 之所以说集合类型是一个无序集合,是因为它的存储顺序不会按照插入的先后顺序进行存储,如下代码所示: 127.0.0.1:6379> sadd myset v2 v1 v3 #插入数据 v2、v1、v3 (integer) 3 127.0.0.1:6379> smembers myset #查询数…

parse 日期_日期parse()方法以及JavaScript中的示例

parse 日期JavaScript Date parse()方法 (JavaScript Date parse() method) parse() method is a Date class method, it is used to parse a given date string and returns the total number of milliseconds since 01st January 1970 (midnight) to given date string. pars…

ORA-01002 提取违反顺序

ORA-01002 提取违反顺序 ORA-01002 ORA-01002: fetch out of sequence Cause: This error means that a fetch has been attempted from a cursor which is no longer valid. Note that a PL/SQL cursor loop implicitly does fetches, and thus may also cause this error. Th…

Android 友盟SDK 终极解决报错:SocialSDK_QQZone_2.jar contains native libraries that

转自:http://bbs.umeng.com/thread-6552-1-2.html 报错信息:The library SocialSDK_QQZone_2.jar contains native libraries that will not run on the device.解决方案:此问题和Eclipse环境有关,按照如下步骤操作即可Eclipse-&g…

Redis 持久化——AOF

使用 RDB 持久化有一个风险,它可能会造成最新数据丢失的风险。因为 RDB 的持久化有一定的时间间隔,在这个时间段内如果 Redis 服务意外终止的话,就会造成最新的数据全部丢失。 可能会操作 Redis 服务意外终止的条件: 安装 Redis 的机器停止运行,蓝屏或者系统崩溃;安装 R…

数组的fill方法_数组fill()方法以及JavaScript中的示例

数组的fill方法JavaScript fill()方法 (JavaScript fill() method) fill() method is used fill the array with a given value. fill()方法用于使用给定值填充数组。 Syntax: 句法: array.fill(value, [start_index], [end_index]);Parameters: 参数&#xff1a…

第四章文件管理

第四章文件管理4.1_2初识文件4.1_2文件的逻辑结构无结构文件有结构文件(1)顺序文件(2)索引文件索引顺序文件多级索引顺序文件4.1_3文件目录文件控制块FCB(2)单级目录(3)两级目录结构…

current of 使用

--Where Current Of语句允许你更新或者是删除最后由cursor取的记录declarecursor c_emp is select * from emp2 for update;beginfor v_emp in c_emp loopif substr(v_emp.ename,1,1)S thenupdate emp2 set comm nvl(comm,0)1000 where current of c_emp;end if;end loop;comm…

免费的管理页面模板

2019独角兽企业重金招聘Python工程师标准>>> Free Bootstrap Admin Templates for Designers 1. Admin Lite AdminLTE - 是一个完全响应式管理模板。基于Bootstrap3的框架。高度可定制的,易于使用。支持很多的屏幕分辨率适合从小型移动设备到大型台式机。…

Redis 持久化——RDB

Redis 的读写都是在内存中,所以它的性能较高,但在内存中的数据会随着服务器的重启而丢失,为了保证数据不丢失,我们需要将内存中的数据存储到磁盘,以便 Redis 重启时能够从磁盘中恢复原有的数据,而整个过程就叫做 Redis 持久化。 Redis 持久化也是 Redis 和 Memcached 的主…

c# 命名空间命名规范_C#命名空间能力问题和解答 套装2

c# 命名空间命名规范1) Can we create a nested namespace in C#.NET? YesNo Answer & Explanation Correct answer: 1Yes Yes, we can create a nested namespace in C#.NET. 1)我们可以在C#.NET中创建嵌套的名称空间吗? 是 没有 答案与解释 正确…

MATLAB使用教程

MATLAB使用教程2.1.1 MATLAB系统环境(1)命令行窗口(2)工作区窗口2.2.1MATLAB数值数据(1)强制转换如转换为int整形(2)判断变量类型(3)复型(4&#…

Oracle笔记:循环及游标

循环及退出循环&#xff1a; --while--初值while 条件loop循环体;循环变量的变化;end loop;--breakif 条件 thenexit;end if;--continue<<label>>....if 条件 thengoto label;end if; --例declarei integer;j integer;begin j:1;<<b>> while j<9l…

Redis 事务深入解析

作为关系型数据库中一项非常重要的基础功能——事务,在 Redis 中是如何处理并使用的? 前言 事务指的是提供一种将多个命令打包,一次性按顺序地执行的机制,并且保证服务器只有在执行完事务中的所有命令后,才会继续处理此客户端的其他命令。 事务也是其他关系型数据库所必…

Java Thread类的最终void join()方法与示例

线程类最终void join() (Thread Class final void join()) This method is available in package java.lang.Thread.join(). 软件包java.lang.Thread.join()中提供了此方法。 join() method is applicable when a thread wants to wait until completing some other thread the…

解决myeclipse中新导入的工程旁出现红色感叹号的问题

2019独角兽企业重金招聘Python工程师标准>>> 或许很多像我这样的java初学者在使用myeclipse时出现新导入的工程旁边有红色的感叹号。 1.问题一般就是java build path 设置不正确的问题。解决步骤如下&#xff1a; 右击工程找到Build Path——>Configure Build Pa…

层次分析法

层次分析法一、层次分析法原理二、解题步骤&#xff08;1&#xff09;层次结构模型&#xff08;2&#xff09;成对比较矩阵①成对比较矩阵&#xff08;有现成代码进行一致性检验和求权重&#xff09;②成对比较阵标度表及举例③一致性检验三、旅游性问题举例&#xff08;1&…

ORA-00997: 非法使用 LONG 数据类型

今天在创建表的时候直接用的create table XXX as select * from AAA;结果出了一个&#xff1a;ORA-00997: 非法使用 LONG 数据类型 的错误。后来查了一下&#xff0c;做下笔记&#xff1a;1、select查询语句中用到where 语句和排序时不能直接 使用数据类型为long的字段&#xf…