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的更多相关文章

  1. Redis学习手册(目录)

    为什么自己当初要选择Redis作为数据存储解决方案中的一员呢?现在能想到的原因主要有三.其一,Redis不仅性能高效,而且完全免费.其二,是基于C/C++开发的服务器,这里应该有一定的感情因素吧.最后 ...

  2. redis 学习笔记(6)-cluster集群搭建

    上次写redis的学习笔记还是2014年,一转眼已经快2年过去了,在段时间里,redis最大的变化之一就是cluster功能的正式发布,以前要搞redis集群,得借助一致性hash来自己搞shardi ...

  3. Redis——学习之路四(初识主从配置)

    首先我们配置一台master服务器,两台slave服务器.master服务器配置就是默认配置 端口为6379,添加就一个密码CeshiPassword,然后启动master服务器. 两台slave服务 ...

  4. Redis——学习之路三(初识redis config配置)

    我们先看看config 默认情况下系统是怎么配置的.在命令行中输入 config get *(如图) 默认情况下有61配置信息,每一个命令占两行,第一行为配置名称信息,第二行为配置的具体信息.     ...

  5. Redis——学习之路二(初识redis服务器命令)

    上一章我们已经知道了如果启动redis服务器,现在我们来学习一下,以及如何用客户端连接服务器.接下来我们来学习一下查看操作服务器的命令. 服务器命令: 1.info——当前redis服务器信息   s ...

  6. Redis学习笔记~目录

    回到占占推荐博客索引 百度百科 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合). ...

  7. Redis学习笔记4-Redis配置详解

    在Redis中直接启动redis-server服务时, 采用的是默认的配置文件.采用redis-server   xxx.conf 这样的方式可以按照指定的配置文件来运行Redis服务.按照本Redi ...

  8. Redis学习笔记1-Redis的介绍和认识

    说明:文章内容来自百度百科和redis官方对redis的介绍 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API ...

  9. Redis学习笔记7--Redis管道(pipeline)

    redis是一个cs模式的tcp server,使用和http类似的请求响应协议.一个client可以通过一个socket连接发起多个请求命令.每个请求命令发出后client通常会阻塞并等待redis ...

随机推荐

  1. 好久没做codeforces

    近期小结: 做了四场多校的比赛,感觉学到的东西好少诶,除了CLJ那场太神,其他场次的赛后几乎都能独立的AK 感觉顶多就锻炼锻炼代码能力?真是件伤感的事情... 虽然每场都,b,但只要baolaoban ...

  2. 倒计时实现方案总结 Timer Handler

    利用Timer实现倒计时 @BindView(R.id.send) Button send;//发送验证码 private int time = 60;//倒计时 private Timer time ...

  3. IE浏览器报Promise未定义的错误、解决vuex requires a Promise polyfill in this browser问题

    一个vue-cli构建的vue项目,一个使用angular的项目,两个项目在其他浏览器一切正常,但是ie中会报Promise未定义的错误 解决办法: 一.vue的项目: 1.npm install b ...

  4. C# GDI+技术

    C# GDI+技术 GDI+概述         GDI+是GDI(即Windows早期版本号中附带的Graphics Device Interface)的后继者.它是一种构成Windows XP操作 ...

  5. jansson的使用

    https://jansson.readthedocs.org/en/2.5/gettingstarted.html https://github.com/akheron/jansson/blob/m ...

  6. error loading /system/media/audio/ui/Effect_Tick.ogg

    问题原因: 同一个AVD,调试了很多个项目,产生了N多个log文件,这些文件可能产生了影响. 解决办法: 新建一个AVD即可.

  7. uni-app 如何开启sass\less处理

    开启方式:工具->插件安装->安装完成,启用即可

  8. The jQuery HTML5 Audio / Video Library (jQuery jPlayer插件给你的站点增加视频和音频功能)

    http://jplayer.org/ The jQuery HTML5 Audio / Video Library jPlayer is the completely free and open s ...

  9. 《Java并发编程实战》第九章 图形用户界面应用程序界面 读书笔记

    一.为什么GUI是单线程化 传统的GUI应用程序通常都是单线程的. 1. 在代码的各个位置都须要调用poll方法来获得输入事件(这样的方式将给代码带来极大的混乱) 2. 通过一个"主事件循环 ...

  10. taro 不支持render中,使用函数多条件渲染

    不支持render中,使用函数多条件渲染 h5不报错,但是编译成小程序时 会报错 错误写法: onRenderContent = () => { const { verified, recogn ...