十一、Redis有序集合(sorted set)命令参考记录
Redis有序集合,顾名思义,重点在于有序。
在集合类型的基础上有序集合类型为集合中的每个元素都关联了一个分数,因此可以完成插入、删除、判断元素是否存在等集合类型支持的操作,还可以获得分类最高(最低)的前N个元素、获得指定分数范围内的元素与分类有关的操作。
有序集合与列表类型有些相似
相似点
- 都是有序的
- 都可以获得某一些范围内的元素
区别
- 列表类型是通过链表实现的,获取靠近两端的数据非常快,元素增多后,获取中间数据的速度较慢,因此链表更适合实现如“新鲜事”、“日志”等很少访问中间元素的应用
- 有序集合使用哈希表和跳跃表实现,即使读取中间部分的数据速度也很快
- 列表中不能简单地调整某个元素的位置,有序集合可以
- 有序集合比列表更消耗内存
基础操作命令
zadd 向集合中添加一个或多个元素和该元素的分数
语法:zadd key score1 member1 [score2 member2 ...]
<span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:6379> zadd board <span style="box-sizing: border-box;color: rgb(255, 83, 112)">89</span> tom <span style="box-sizing: border-box;color: rgb(255, 83, 112)">60</span> peter <span style="box-sizing: border-box;color: rgb(255, 83, 112)">100</span> hipi</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">(integer) <span style="box-sizing: border-box;color: rgb(255, 83, 112)">3</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(103, 110, 149)"># 修改分数</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:6379> zadd board <span style="box-sizing: border-box;color: rgb(255, 83, 112)">87</span> hipi</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">(integer) <span style="box-sizing: border-box;color: rgb(255, 83, 112)">0</span></span>
zscore 获取元素分数
语法:zscore key member
<span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:6379> zscore board hipi</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(195, 232, 141)">"87"</span></span>
zrange 获取排名在某个范围的元素列表
语法:zrange key start stop [withscores]
<span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:6379> zrange board <span style="box-sizing: border-box;color: rgb(255, 83, 112)">0</span> <span style="box-sizing: border-box;color: rgb(199, 146, 234)">-1</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">1</span>) <span style="box-sizing: border-box;color: rgb(195, 232, 141)">"peter"</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">2</span>) <span style="box-sizing: border-box;color: rgb(195, 232, 141)">"hipi"</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">3</span>) <span style="box-sizing: border-box;color: rgb(195, 232, 141)">"tom"</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:6379> zrange board <span style="box-sizing: border-box;color: rgb(255, 83, 112)">0</span> <span style="box-sizing: border-box;color: rgb(255, 83, 112)">2</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">1</span>) <span style="box-sizing: border-box;color: rgb(195, 232, 141)">"peter"</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">2</span>) <span style="box-sizing: border-box;color: rgb(195, 232, 141)">"hipi"</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">3</span>) <span style="box-sizing: border-box;color: rgb(195, 232, 141)">"tom"</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:6379> zrange board <span style="box-sizing: border-box;color: rgb(255, 83, 112)">0</span> <span style="box-sizing: border-box;color: rgb(199, 146, 234)">-1</span> withscores</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">1</span>) <span style="box-sizing: border-box;color: rgb(195, 232, 141)">"peter"</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">2</span>) <span style="box-sizing: border-box;color: rgb(195, 232, 141)">"60"</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">3</span>) <span style="box-sizing: border-box;color: rgb(195, 232, 141)">"hipi"</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">4</span>) <span style="box-sizing: border-box;color: rgb(195, 232, 141)">"87"</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">5</span>) <span style="box-sizing: border-box;color: rgb(195, 232, 141)">"tom"</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">6</span>) <span style="box-sizing: border-box;color: rgb(195, 232, 141)">"89"</span></span>
zrange按照分数值 从大到小排序。下标参数start和stop都是以0为底
zrevrange 返回有序集合中指定区间内的成员,通过索引,分数由高到低
语法:zrevrange key start top [withscores]
<span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:6379> zrevrange board <span style="box-sizing: border-box;color: rgb(255, 83, 112)">0</span> <span style="box-sizing: border-box;color: rgb(199, 146, 234)">-1</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">1</span>) <span style="box-sizing: border-box;color: rgb(195, 232, 141)">"tom"</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">2</span>) <span style="box-sizing: border-box;color: rgb(195, 232, 141)">"hipi"</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">3</span>) <span style="box-sizing: border-box;color: rgb(195, 232, 141)">"peter"</span></span>
其中成员的位置按分数值递减(从大到小)来排列。
zrangebyscore 获取指定分数范围的元素
语法:zrangebyscore key min max [withscores] [limit offset count]
<span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:6379> zrangebyscore board <span style="box-sizing: border-box;color: rgb(255, 83, 112)">80</span> <span style="box-sizing: border-box;color: rgb(255, 83, 112)">100</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">1</span>) <span style="box-sizing: border-box;color: rgb(195, 232, 141)">"hipi"</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">2</span>) <span style="box-sizing: border-box;color: rgb(195, 232, 141)">"tom"</span> </span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(103, 110, 149)"># 获取高于60分的前3人</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:6379> zrangebyscore board <span style="box-sizing: border-box;color: rgb(255, 83, 112)">60</span> <span style="box-sizing: border-box;color: rgb(137, 221, 255)">+</span>inf limit <span style="box-sizing: border-box;color: rgb(255, 83, 112)">1</span> <span style="box-sizing: border-box;color: rgb(255, 83, 112)">3</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">1</span>) <span style="box-sizing: border-box;color: rgb(195, 232, 141)">"qiutian"</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">2</span>) <span style="box-sizing: border-box;color: rgb(195, 232, 141)">"hipi"</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">3</span>) <span style="box-sizing: border-box;color: rgb(195, 232, 141)">"tom"</span></span>
若分数不包含端点值,分数前加 ( ,如包含80分,则用 (80;
min与max支持无穷,-inf和+inf分别表示负无穷与正无穷
zrevrangebyscore 返回有序集合中指定分区区间内的成员,分数从高到低排序
语法:zrevrangebyscore key max min [withscores]
<span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:6379> zrevrangebyscore board <span style="box-sizing: border-box;color: rgb(255, 83, 112)">100</span> <span style="box-sizing: border-box;color: rgb(255, 83, 112)">0</span> limit <span style="box-sizing: border-box;color: rgb(255, 83, 112)">0</span> <span style="box-sizing: border-box;color: rgb(255, 83, 112)">3</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">1</span>) <span style="box-sizing: border-box;color: rgb(195, 232, 141)">"wendy"</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">2</span>) <span style="box-sizing: border-box;color: rgb(195, 232, 141)">"tom"</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">3</span>) <span style="box-sizing: border-box;color: rgb(195, 232, 141)">"hipi"</span></span>
zincrby 增加某个元素的分数
语法:zincrby key increment member
<span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(103, 110, 149)"># 返回值为更改后的分数</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:6379> zincrby board <span style="box-sizing: border-box;color: rgb(255, 83, 112)">4</span> jerry</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(195, 232, 141)">"60"</span></span>
zcard 获取集合中元素的数量
语法:zcard key
<span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:6379> zcard board</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">(integer) <span style="box-sizing: border-box;color: rgb(255, 83, 112)">6</span></span>
zcount 获取指定分数范围内的元素个数
语法:zcount key min max
<span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:6379> zcount board <span style="box-sizing: border-box;color: rgb(255, 83, 112)">90</span> <span style="box-sizing: border-box;color: rgb(255, 83, 112)">100</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">(integer) <span style="box-sizing: border-box;color: rgb(255, 83, 112)">1</span></span>
zrem 删除一个或多个元素
语法:zrem key member1 [member2 ...]
<span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:6379> zrem board tom</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">(integer) <span style="box-sizing: border-box;color: rgb(255, 83, 112)">1</span></span>
zremrangebyrank 按照排名范围删除元素
语法:zremrangebyrank key start stop
<span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:6379> zadd testrem <span style="box-sizing: border-box;color: rgb(255, 83, 112)">1</span> a <span style="box-sizing: border-box;color: rgb(255, 83, 112)">2</span> b <span style="box-sizing: border-box;color: rgb(255, 83, 112)">3</span> c <span style="box-sizing: border-box;color: rgb(255, 83, 112)">4</span> d <span style="box-sizing: border-box;color: rgb(255, 83, 112)">5</span> e <span style="box-sizing: border-box;color: rgb(255, 83, 112)">6</span> f <span style="box-sizing: border-box;color: rgb(255, 83, 112)">7</span> g</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">(integer) <span style="box-sizing: border-box;color: rgb(255, 83, 112)">7</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:6379> zremrangebyrank testrem <span style="box-sizing: border-box;color: rgb(255, 83, 112)">0</span> <span style="box-sizing: border-box;color: rgb(255, 83, 112)">2</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">(integer) <span style="box-sizing: border-box;color: rgb(255, 83, 112)">3</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:6379> zrange testrem <span style="box-sizing: border-box;color: rgb(255, 83, 112)">0</span> <span style="box-sizing: border-box;color: rgb(199, 146, 234)">-1</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">1</span>) <span style="box-sizing: border-box;color: rgb(195, 232, 141)">"d"</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">2</span>) <span style="box-sizing: border-box;color: rgb(195, 232, 141)">"e"</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">3</span>) <span style="box-sizing: border-box;color: rgb(195, 232, 141)">"f"</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">4</span>) <span style="box-sizing: border-box;color: rgb(195, 232, 141)">"g"</span></span>
zremrangebyscore 按照分数范围删除元素
语法:zremrangebyscore key min max
<span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:6379> zremrangebyscore testrem (4 <span style="box-sizing: border-box;color: rgb(255, 83, 112)">5</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">(integer) <span style="box-sizing: border-box;color: rgb(255, 83, 112)">1</span></span>
zrank 获取元素的排名
语法:zrank key member
<span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:6379> zrank board hipi</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">(integer) <span style="box-sizing: border-box;color: rgb(255, 83, 112)">3</span></span>
该命令按照元素分数从小到大的顺序获得指定的元素排名(从0开始)
有序集合操作
zinterstore 计算有序集合的交集
语法:zinterstore destination numkeys key1 [key2 ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]
解释:该命令用来计算多个有序集合的交集并将结果存储在destination键中,返回值为destination键中元素个数;
<span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:6379> zadd sorte1 <span style="box-sizing: border-box;color: rgb(255, 83, 112)">1</span> a <span style="box-sizing: border-box;color: rgb(255, 83, 112)">2</span> b</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">(integer) <span style="box-sizing: border-box;color: rgb(255, 83, 112)">2</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:6379> zadd sorte2 <span style="box-sizing: border-box;color: rgb(255, 83, 112)">10</span> a <span style="box-sizing: border-box;color: rgb(255, 83, 112)">20</span> b</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">(integer) <span style="box-sizing: border-box;color: rgb(255, 83, 112)">2</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(103, 110, 149)"># 1)当AGGREGAET是SUM时,destination键中元素的分数是每个参与计算的集合中该元素的分数的和</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:6379> zinterstore sorteResult <span style="box-sizing: border-box;color: rgb(255, 83, 112)">2</span> sorte1 sorte2</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">(integer) <span style="box-sizing: border-box;color: rgb(255, 83, 112)">2</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:6379> zrange sorteResult <span style="box-sizing: border-box;color: rgb(255, 83, 112)">0</span> <span style="box-sizing: border-box;color: rgb(199, 146, 234)">-1</span> withscores</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">1</span>) <span style="box-sizing: border-box;color: rgb(195, 232, 141)">"a"</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">2</span>) <span style="box-sizing: border-box;color: rgb(195, 232, 141)">"11"</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">3</span>) <span style="box-sizing: border-box;color: rgb(195, 232, 141)">"b"</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">4</span>) <span style="box-sizing: border-box;color: rgb(195, 232, 141)">"22"</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(103, 110, 149)"># 2)当AGGREGATE是MIN时,destination键中的元素分数是每个参与计算的集合中该元素分数的最小值</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:6379> zinterstore result1 <span style="box-sizing: border-box;color: rgb(255, 83, 112)">2</span> sorte1 sorte2 AGGREGATE MIN</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">(integer) <span style="box-sizing: border-box;color: rgb(255, 83, 112)">2</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:6379> zrange result1 <span style="box-sizing: border-box;color: rgb(255, 83, 112)">0</span> <span style="box-sizing: border-box;color: rgb(199, 146, 234)">-1</span> withscores</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">1</span>) <span style="box-sizing: border-box;color: rgb(195, 232, 141)">"a"</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">2</span>) <span style="box-sizing: border-box;color: rgb(195, 232, 141)">"1"</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">3</span>) <span style="box-sizing: border-box;color: rgb(195, 232, 141)">"b"</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">4</span>) <span style="box-sizing: border-box;color: rgb(195, 232, 141)">"2"</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(103, 110, 149)"># 3)当AGGREGATE是MAX时,destination键中的元素分数是每个参与计算的集合中该元素分数的最大值</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:6379> zinterstore result2 <span style="box-sizing: border-box;color: rgb(255, 83, 112)">2</span> sorte1 sorte2 AGGREGATE MAX</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">(integer) <span style="box-sizing: border-box;color: rgb(255, 83, 112)">2</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:6379> zrange result2 <span style="box-sizing: border-box;color: rgb(255, 83, 112)">0</span> <span style="box-sizing: border-box;color: rgb(199, 146, 234)">-1</span> withscores</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">1</span>) <span style="box-sizing: border-box;color: rgb(195, 232, 141)">"a"</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">2</span>) <span style="box-sizing: border-box;color: rgb(195, 232, 141)">"10"</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">3</span>) <span style="box-sizing: border-box;color: rgb(195, 232, 141)">"b"</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">4</span>) <span style="box-sizing: border-box;color: rgb(195, 232, 141)">"20"</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:6379> </span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box"></span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(103, 110, 149)"># 3)设置每个集合的权重,每个集合在参与计算时元素的分数会被乘上集合的权重</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:6379> zinterstore result3 <span style="box-sizing: border-box;color: rgb(255, 83, 112)">2</span> sorte1 sorte2 weights <span style="box-sizing: border-box;color: rgb(255, 83, 112)">1</span> <span style="box-sizing: border-box;color: rgb(255, 83, 112)">0</span>.1</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">(integer) <span style="box-sizing: border-box;color: rgb(255, 83, 112)">2</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:6379> zrange result3 <span style="box-sizing: border-box;color: rgb(255, 83, 112)">0</span> <span style="box-sizing: border-box;color: rgb(199, 146, 234)">-1</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">1</span>) <span style="box-sizing: border-box;color: rgb(195, 232, 141)">"a"</span></span><br></br><span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">2</span>) <span style="box-sizing: border-box;color: rgb(195, 232, 141)">"b"</span></span>
zunionstore 计算一个或多个有序集合的并集
语法:zunionstore destination numkeys key1 [key2 ...]
<span style="box-sizing: border-box;padding-right: 0.1px"><span style="box-sizing: border-box;color: rgb(255, 83, 112)">127</span>.0.0.1:6379> zunionstore ureslut1 <span style="box-sizing: border-box;color: rgb(255, 83, 112)">2</span> result1 result1</span><br></br><span style="box-sizing: border-box;padding-right: 0.1px">(integer) <span style="box-sizing: border-box;color: rgb(255, 83, 112)">2</span></span>
我是夕阳何处寻,期待和优秀的你一起同行!
小白
2020年09月02日