理解 Redis(8) - Ordered set 值
ordered set 是根据 score值有序排列的数据集合.

首先还是清空数据, 并清屏, 此步骤省略~~~~
新建一条 ordered set 数据 myset1, 并存入4个字符串, score 的排列顺序为1-4:
127.0.0.1:6379> zadd myset1 1 a 2 b 3 c 4 d
(integer) 4
查看这个数据:
127.0.0.1:6379> zrange myset1 0 -1
1) "a"
2) "b"
3) "c"
4) "d"
给 myset1 的值里新加一个字符e, score=100:
127.0.0.1:6379> zadd myset1 100 e
(integer) 1
查看最新的 myset1 的值:
127.0.0.1:6379> zrange myset1 0 -1
1) "a"
2) "b"
3) "c"
4) "d"
5) "e"
查看 myset1 的值里一共有几条数据:
127.0.0.1:6379> zcard myset1
(integer) 5
根据指定的 score 的范围查看 myset1 的值里一共有几条数据:
127.0.0.1:6379> zcount myset1 1 3
(integer) 3
127.0.0.1:6379> zcount myset1 1 5
(integer) 4
127.0.0.1:6379> zcount myset1 1 55
(integer) 4
127.0.0.1:6379> zcount myset1 1 101
(integer) 5
127.0.0.1:6379> zcount myset1 1 100
(integer) 5
127.0.0.1:6379> zcount myset1 1 99
(integer) 4
删除 myset1 值里的某个数据:
127.0.0.1:6379> zrem myset1 b
(integer) 1
127.0.0.1:6379> zrange myset1 0 -1
1) "a"
2) "c"
3) "d"
4) "e"
127.0.0.1:6379> zrem myset1 d
(integer) 1
127.0.0.1:6379> zrange myset1 0 -1
1) "a"
2) "c"
3) "e"
查看某个数据的索引值:
127.0.0.1:6379> zrank myset1 e
(integer) 2
127.0.0.1:6379> zrank myset1 a
(integer) 0
反排序后查询索引:
127.0.0.1:6379> zrevrank myset1 a
(integer) 2
127.0.0.1:6379> zrevrank myset1 e
(integer) 0
查询 score值, 没有的返回 nil:
127.0.0.1:6379> zscore myset1 e
"100"
127.0.0.1:6379> zscore myset1 a
"1"
127.0.0.1:6379> zscore myset1 jsjs
(nil)
支持对同一个 score值设置多个不同的数据:
127.0.0.1:6379> zrange myset1 0 -1
1) "a"
2) "c"
3) "e"
127.0.0.1:6379> zadd myset1 1 aaaa
(integer) 1
127.0.0.1:6379> zrange myset1 0 -1
1) "a"
2) "aaaa"
3) "c"
4) "e"
127.0.0.1:6379> zadd myset1 1 bbbb
(integer) 1
127.0.0.1:6379> zrange myset1 0 -1
1) "a"
2) "aaaa"
3) "bbbb"
4) "c"
5) "e"
查询 score值, 再次证明 ordered set 支持对同一个 score值设置多个不同的数据:
127.0.0.1:6379> zscore myset1 a
"1"
127.0.0.1:6379> zscore myset1 aaaa
"1"
127.0.0.1:6379> zscore myset1 bbbb
"1"
查询索引:
127.0.0.1:6379> zrank myset1 a
(integer) 0
127.0.0.1:6379> zrank myset1 aaaa
(integer) 1
127.0.0.1:6379> zrank myset1 bbbb
(integer) 2
根据指定的 score值的范围查出数据:
127.0.0.1:6379> zrangebyscore myset1 1 2
1) "a"
2) "aaaa"
3) "bbbb"
127.0.0.1:6379> zrangebyscore myset1 1 4
1) "a"
2) "aaaa"
3) "bbbb"
4) "c"
以上, 就是关于 ordered set 的相关命令, enjoy~~~~
理解 Redis(8) - Ordered set 值的更多相关文章
- 理解 Redis(5) - 哈希值
哈希值存储示意图:首先, 我想先认真理解一下哈希值的数据结构:前面讲过, redis 存储的是键值对, 键永远都是可以打印的 ASCII 码, 值是字符串, 或者是以其他形式包裹的字符串. 上两节介绍 ...
- 深入理解Redis:底层数据结构
简介 redis[1]是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorte ...
- 深入理解Redis主键失效原理及实现机制(转)
原文:深入理解Redis主键失效原理及实现机制 作为一种定期清理无效数据的重要机制,主键失效存在于大多数缓存系统中,Redis 也不例外.在 Redis 提供的诸多命令中,EXPIRE.EXPIREA ...
- 深入理解redis数据类型
转载请注明出处:https://www.cnblogs.com/wenjunwei/p/9720033.html redis的存储模型 redis不是普通的键值对存储,它实际上是一个数据结构存储服务器 ...
- 深入理解redis复制原理
原文:深入理解redis复制原理 1.复制过程 2.数据间的同步 3.全量复制 4.部分复制 5.心跳 6.异步复制 1.复制过程 从节点执行 slaveof 命令. 从节点只是保存了 slaveof ...
- 理解PHP的变量,值与引用的关系
--- title: 理解PHP的变量,值与引用的关系 createdDate: 2015-03-11 category: php --- PHP的变量与C++中的变量是两种截然不容的概念.如果没有理 ...
- 深入理解Redis——(总纲)
前言 Redis这个东西,我来来回回的也搞了好几遍,之前更偏向于实战,很多时候只知其然而不知其所以然,最近借阅了一本<深入理解Redis>,就系统的整理一下. 为何选择Redis 开源免费 ...
- Redis中的键值过期操作
1.过期设置 Redis 中设置过期时间主要通过以下四种方式: expire key seconds:设置 key 在 n 秒后过期: pexpire key milliseconds:设置 key ...
- 10分钟彻底理解Redis的持久化机制:RDB和AOF
作者:张君鸿 juejin.im/post/5d09a9ff51882577eb133aa9 什么是Redis持久化? Redis作为一个键值对内存数据库(NoSQL),数据都存储在内存当中,在处理客 ...
随机推荐
- 你知道CSS实现水平垂直居中的第10种方式吗?
你知道CSS实现水平垂直居中的第10种方式吗? 仅居中元素定宽高适用: absolute + 负 margin absolute + margin auto absolute + calc 居中元素不 ...
- Python+OpenCV图像处理(一)——读取显示一张图片
先在此处先声明,后面学习python+opencv图像处理时均参考这位博主的博文https://blog.csdn.net/u011321546/article/category/7495016/2? ...
- LNMP 添加 memcached服务
LNMP 添加 memcached服务 由于memcached具有更多的功能和服务,已经不推荐使用memcache了.(缺少个字母d) 1. 首先安装memcached服务端. 这里使用yum源安 ...
- php stomp.dll 下载地址
http://pecl.php.net/package/stomp/1.0.9/windows 查看方法,打开phpinfo
- List,Set,Collection,Collections比较
官方话 1.List和Set都是接口,他们都继承于接口Collection,List是一个有序的可重复的集合,而Set的无序的不可重复的集合.Collection是集合的顶层接口,Collection ...
- ARM的栈指令(转)
ARM的指令系统中关于栈指令的内容比较容易引起迷惑,这是因为准确描述一个栈的特点需要两个参数: 栈地址的增长方向:ARM将向高地址增长的栈称为递增栈(Descendent Stack),将向低地址增长 ...
- libopencv_shape.so.3.0: cannot open shared object file: No such file or directory 解决笔记
进入目录:/etc/ld.so.conf.d 创建:opencv.conf 添加:/opt/opencv-3.0.0/build/lib 执行:ldconfig DETAIL: (1)ldd dlsd ...
- bzoj 3237 连通图 - 并查集 - 线段树
Input Output Sample Input 4 5 1 2 2 3 3 4 4 1 2 4 3 1 5 2 2 3 2 1 2 Sample Output Connected Disconne ...
- 【python002-设计小游戏】
用python设计第一个游戏 一.运行idle的快捷方式:F5 二.首先设计一款小游戏: print('-------开启python学习之旅--------')temp = input(" ...
- Flask学习【第11篇】:整合Flask中的一些知识点
SQLAlchemy-Utils 由于sqlalchemy中没有提供choice方法,所以借助SQLAlchemy-Utils组件提供的choice方法 import datetime from sq ...