redis 学习札记4-sortset
redis 学习笔记4--sortset
redis学习笔记3--sortSet
终于到最后一个数据结构了,加油!!
整体结构图:
http://dl.iteye.com/upload/picture/pic/115995/0ee3789f-33e1-35ca-ac65-cbd6b4e4e147.jpg
1.ZADD
语法: ZADD key score value
释义:添加执行分数的value, score必须是double类型的数值
实践:
redis 127.0.0.1:6379> zadd z1 1 a
(integer) 1
redis 127.0.0.1:6379> zadd z1 2 b
(integer) 1
redis 127.0.0.1:6379> zadd z1 20 bb
(integer) 1
redis 127.0.0.1:6379> zadd z1 10 ff
(integer) 1
redis 127.0.0.1:6379> zrange z1 0 -1
1) "a"
2) "b"
3) "ff"
4) "bb"
2.ZREM
语法:ZREM key value
释义:删除指定value的值
实践:
redis 127.0.0.1:6379> ZREM z1 b // 删除,指定value
(integer) 1
redis 127.0.0.1:6379> zrange z1 0 -1
1) "a"
2) "ff"
3) "bb"
3.ZCARD
语法:ZCARD key
释义:获取集合总数
实践:
redis 127.0.0.1:6379> zrange z1 0 -1
1) "a"
2) "ff"
3) "bb"
redis 127.0.0.1:6379> zcard z1
(integer) 3
4.ZCOUNT
语法:zcount key min max
释义:计算在指定范围内的元素数目
(1 6 ==== 1 < x <= 6 // 括号代表开区间
1 6 ==== 1 <= x <= 6
实践:
redis 127.0.0.1:6379> zrange z1 0 -1 withscores
1) "a"
2) "1"
3) "ff"
4) "10"
5) "bb"
6) "20"
redis 127.0.0.1:6379> zcount z1 5 10 // 闭区间,能取得10
(integer) 1
redis 127.0.0.1:6379> zcount z1 5 (10 //开区间,无法得到10
(integer) 0
5.ZSCORE
语法:ZSCORE key value
释义:获取指定key的分数
实践:
redis 127.0.0.1:6379> zrange z1 0 -1 withscores
1) "a"
2) "1"
3) "ff"
4) "10"
5) "bb"
6) "20"
redis 127.0.0.1:6379> zscore z1 a // 获取a的分数
"1"
6.ZINCRBY
语法:ZINCRBY key score value
释义:对于指定的value进行加法操作
实践:
redis 127.0.0.1:6379> zrange z1 0 -1 withscores
1) "a"
2) "1"
3) "ff"
4) "10"
5) "bb"
6) "20"
redis 127.0.0.1:6379> zincrby z1 10 a // 对于a+10
"11"
redis 127.0.0.1:6379> zrange z1 0 -1 withscores
1) "ff"
2) "10"
3) "a"
4) "11"
5) "bb"
6) "20"
redis 127.0.0.1:6379> zincrby z1 -3 a // 对于a-3
"8"
redis 127.0.0.1:6379> zrange z1 0 -1 withscores
1) "a"
2) "8"
3) "ff"
4) "10"
5) "bb"
6) "20"
7.ZRANGE|ZREVRANGE
语法:ZRANGE|ZREVRANGE key
释义:显示所有列表
redis 127.0.0.1:6379> zrange z1 0 -1
1) "a"
2) "ff"
3) "bb"
redis 127.0.0.1:6379> zrevrange z1 0 -1
1) "bb"
2) "ff"
3) "a"
8.ZRANGEBYSCORE|ZREVRANGEBYSCORE
语法:ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]
释义:获取指定范围内的数值
实践:
redis 127.0.0.1:6379> zrange z1 0 -1 withscores
1) "a"
2) "8"
3) "ff"
4) "10"
5) "bb"
6) "20"
redis 127.0.0.1:6379> zrangebyscore z1 -inf +inf // 在不清楚最大最小范围的时间,可以采用这个 -inf +inf
1) "a"
2) "ff"
3) "bb"
redis 127.0.0.1:6379> zrangebyscore z1 8 10 // 闭区间
1) "a"
2) "ff"
redis 127.0.0.1:6379> zrangebyscore z1 (8 10 // 开区间
1) "ff"
9.ZRANK|ZREVRANK
语法:zrank|zremrank key member
释义:获取指定值在集合中的排名,以0代表第一位 。(顺序或是逆序)
redis 127.0.0.1:6379> zrange z1 0 -1 withscores
1) "a"
2) "8"
3) "ff"
4) "10"
5) "bb"
6) "20"
redis 127.0.0.1:6379> zrank z1 a
(integer) 0
redis 127.0.0.1:6379> zrank z1 ff //顺序位置
(integer) 1
redis 127.0.0.1:6379> zrevrank z1 a //逆序位置
(integer) 2
10.ZREMRANGEBYRANK
语法 :ZREMRANGEBYRANK key min max
释义:删除指定下标的数据
实践:
redis 127.0.0.1:6379> zrange z1 0 -1
1) "a"
2) "ff"
3) "bb"
redis 127.0.0.1:6379> zremrangebyrank z1 0 1
(integer) 2
redis 127.0.0.1:6379> zrange z1 0 -1
1) "bb"
11.ZREMRANGEBYSCORE
语法 :ZREMRANGEBYSCORE key min max
释义:根据指定分数删除数据
实践:
redis 127.0.0.1:6379> zrange z1 0 -1 withscores
1) "bb"
2) "20"
redis 127.0.0.1:6379> ZREMRANGEBYSCORE z1 -inf +inf // 删除所有的数据 等同于 del z1
(integer) 1
redis 127.0.0.1:6379> zrange z1 0 -1
(empty list or set)
12.ZINTERSTORE
语法:ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]
释义:
计算给定的一个或多个有序集的交集,其中给定 key 的数量必须以 numkeys 参数指定,并将该交集(结果集)储存到 destination 。
默认情况下,结果集中某个成员的 score 值是所有给定集下该成员 score 值之和.
实践:
redis 127.0.0.1:6379> zrange s1 0 -1
1) "a"
2) "b"
3) "c"
redis 127.0.0.1:6379> zrange s2 0 -1
1) "a"
2) "c"
3) "d"
redis 127.0.0.1:6379> zinterstore s3 2 s1 s2
(integer) 2
redis 127.0.0.1:6379> zrange s3 0 -1
1) "a"
2) "c"
redis 127.0.0.1:6379>
13.ZUNIONSTORE
语法:ZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]
释义:计算给定的一个或多个有序集的并集,其中给定 key 的数量必须以 numkeys 参数指定,并将该并集(结果集)储存到 destination 。
默认情况下,结果集中某个成员的 score 值是所有给定集下该成员 score 值之 和 。
WEIGHTS
使用 WEIGHTS 选项,你可以为 每个 给定有序集 分别 指定一个乘法因子(multiplication factor),每个给定有序集的所有成员的 score 值在传递给聚合函数(aggregation function)之前都要先乘以该有序集的因子。
如果没有指定 WEIGHTS 选项,乘法因子默认设置为 1 。
AGGREGATE
使用 AGGREGATE 选项,你可以指定并集的结果集的聚合方式。
默认使用的参数 SUM ,可以将所有集合中某个成员的 score 值之 和 作为结果集中该成员的 score 值;使用参数 MIN ,可以将所有集合中某个成员的 最小 score 值作为结果集中该成员的 score 值;而参数 MAX 则是将所有集合中某个成员的 最大 score 值作为结果集中该成员的 score 值。
实践:
redis 127.0.0.1:6379> zunionstore s3 2 s1 s2
(integer) 4
redis 127.0.0.1:6379> zrange s3 0 -1
1) "b"
2) "a"
3) "c"
4) "d"
redis 127.0.0.1:6379>
redis 学习札记4-sortset的更多相关文章
- Redis学习手册(目录)
为什么自己当初要选择Redis作为数据存储解决方案中的一员呢?现在能想到的原因主要有三.其一,Redis不仅性能高效,而且完全免费.其二,是基于C/C++开发的服务器,这里应该有一定的感情因素吧.最后 ...
- redis 学习笔记(6)-cluster集群搭建
上次写redis的学习笔记还是2014年,一转眼已经快2年过去了,在段时间里,redis最大的变化之一就是cluster功能的正式发布,以前要搞redis集群,得借助一致性hash来自己搞shardi ...
- Redis——学习之路四(初识主从配置)
首先我们配置一台master服务器,两台slave服务器.master服务器配置就是默认配置 端口为6379,添加就一个密码CeshiPassword,然后启动master服务器. 两台slave服务 ...
- Redis——学习之路三(初识redis config配置)
我们先看看config 默认情况下系统是怎么配置的.在命令行中输入 config get *(如图) 默认情况下有61配置信息,每一个命令占两行,第一行为配置名称信息,第二行为配置的具体信息. ...
- Redis——学习之路二(初识redis服务器命令)
上一章我们已经知道了如果启动redis服务器,现在我们来学习一下,以及如何用客户端连接服务器.接下来我们来学习一下查看操作服务器的命令. 服务器命令: 1.info——当前redis服务器信息 s ...
- Redis学习笔记~目录
回到占占推荐博客索引 百度百科 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合). ...
- Redis学习笔记4-Redis配置详解
在Redis中直接启动redis-server服务时, 采用的是默认的配置文件.采用redis-server xxx.conf 这样的方式可以按照指定的配置文件来运行Redis服务.按照本Redi ...
- Redis学习笔记1-Redis的介绍和认识
说明:文章内容来自百度百科和redis官方对redis的介绍 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API ...
- Redis学习笔记7--Redis管道(pipeline)
redis是一个cs模式的tcp server,使用和http类似的请求响应协议.一个client可以通过一个socket连接发起多个请求命令.每个请求命令发出后client通常会阻塞并等待redis ...
随机推荐
- 第一章 Java工具类目录
在这一系列博客中,主要是记录在实际开发中会常用的一些Java工具类,方便后续开发中使用. 以下的目录会随着后边具体工具类的添加而改变. 浮点数精确计算 第二章 Java浮点数精确计算 crc32将任意 ...
- HDU4183 起点到终点再到起点 除起点每点仅经过一次 网络流
题意: T个测试数据 n个圆 下面 fre x y r 表示圆的频率 坐标和半径 要求: 从频率为400(最小的) 圆 走到频率为789(最大)的圆,再走回来,除起点每个点只能经过一次 问这样的路径是 ...
- Javascript模块化工具require.js教程
转自:http://www.w3cschool.cc/w3cnote/requirejs-tutorial-1.html, http://www.w3cschool.cc/w3cnote/requir ...
- Python爬虫之selenium爬虫,模拟浏览器爬取天猫信息
由于工作需要,需要提取到天猫400个指定商品页面中指定的信息,于是有了这个爬虫.这是一个使用 selenium 爬取天猫商品信息的爬虫,虽然功能单一,但是也算是 selenium 爬虫的基本用法了. ...
- 理解JavaScript模仿块作用域
1.JS没有块作用域 在C和Java中,一对大括号{}决定一个作用域,比如for循环.在js中,变量可以在函数任何一处定义,并且忽略重复定义.变量初始化之前使用,值永远是undefined. func ...
- 触摸事件UITouch的应用
因为UIView或者UIViewController都是继承与UIResponder ,所以都有UITouch这个事件.当用户点击屏幕的时候,会产生触摸事件. 通过UITouch事件,可以监听到开始触 ...
- N年的经验在别人眼里是怎么看的?
很多人简历上都喜欢总结这么一句话:N年XXX领域的经验.N值越大,似乎越NB. 可是,我怎么看到很多人做了几十年的饭,水平变化不大,和专业厨师还是差得远. 还有写一辈子字的,开一辈子车的,这些人也和专 ...
- NYoj-119-士兵杀敌(3)-RMQ算法
士兵杀敌(三) 时间限制:2000 ms | 内存限制:65535 KB 难度:5 描写叙述 南将军统率着N个士兵,士兵分别编号为1~N,南将军常常爱拿某一段编号内杀敌数最高的人与杀敌数最低的人进 ...
- core dump相关
linux下生成core dump文件方法及设置 http://www.2cto.com/os/201310/253450.html 在linux平台下,设置core dump文件生成的方法: 1 ...
- ORACLE NVL 和 NVL2 函数的使用
NVL函数是一个空值转换函数,在SQL查询中主要用来处理null值.在不支持 null 值或 null 值无关紧要的情况下,可以使用 NVL( ) 来移去计算或操作中的 null 值. Oracle在 ...