redis sortset java_redis 学习笔记4--sortset

本文详细介绍了Redis的SortSet数据结构,包括ZADD、ZREM、ZCARD、ZCOUNT、ZSCORE、ZINCRBY、ZRANGE、ZRANGEBYSCORE等操作,并通过实践示例进行解析,帮助读者深入理解和掌握Redis SortSet的使用,特别是与Java交互的部分。
摘要由CSDN通过智能技术生成

redis学习笔记3--sortSet

终于到最后一个数据结构了,加油!!

整体结构图:

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>

ITeye推荐

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值