ZUNIONSTORE destination numkeys key [key ... ] [WEIGHTS weight [weight ... ]] [AGGREGATE SUM|MIN|MAX] 与上面类似。
127.0.0.1:6379> zadd zset1 10 sh 40 bj ##添加2个元素 (integer) 2 127.0.0.1:6379> zadd zset1 20 sh 50 hz 80 cd ##更新1个,添加2个 (integer) 2 127.0.0.1:6379> zscore zset1 sh ##获取sh的分数,已更新为20 "20" 127.0.0.1:6379> zrange zset1 1 -1 ##从第二个元素开始的所有元素 1) "bj" 2) "hz" 3) "cd" 127.0.0.1:6379> zrange zset1 0 -1 withscores ##获取全部元素 1) "sh" 2) "20" 3) "bj" 4) "40" 5) "hz" 6) "50" 7) "cd" 8) "80" 127.0.0.1:6379> zadd zset1 inf zy ##添加正无穷 (integer) 1 127.0.0.1:6379> zrangebyscore zset1 (50 inf withscores ## 分数大于50的元素 1) "cd" 2) "80" 3) "zy" 4) "inf" 127.0.0.1:6379> zrangebyscore zset1 50 inf withscores limit 1 2 ## 分数大于等于50的元素,从第二个开始,取2个 1) "cd" 2) "80" 3) "zy" 4) "inf" 127.0.0.1:6379> zincrby zset1 5 hz ## 给元素hz加5分 "55" 127.0.0.1:6379> zrangebyscore zset1 (50 inf ## 添加成功 1) "hz" 2) "cd" 3) "zy" 127.0.0.1:6379> zrange zset1 0 -1 WITHSCORES ##查询所有元素 1) "sh" 2) "20" 3) "bj" 4) "40" 5) "hz" 6) "55" 7) "cd" 8) "80" 9) "zy" 10) "inf" 127.0.0.1:6379> zcount zset1 0 inf ##获取元素个数 (integer) 5 127.0.0.1:6379> zcount zset1 (55 inf ##大于55元素个数 (integer) 2 127.0.0.1:6379> zrem zset1 zy ##删除zy (integer) 1 127.0.0.1:6379> zrange zset1 0 -1 ## 剩下四个 1) "sh" 2) "bj" 3) "hz" 4) "cd" 127.0.0.1:6379> zremrangebyrank zset1 1 2 ## 按照排名,删除第2名到第3名 (integer) 2 127.0.0.1:6379> zrange zset1 0 -1 ## 只剩下2个 1) "sh" 2) "cd" 127.0.0.1:6379> zadd zs1 1 a 2 b (integer) 2 127.0.0.1:6379> zadd zs2 10 a 20 b (integer) 2 ## zs1和zs2取交集,zs1的权重为1,zs2的权重为0.5,所以a的结果分数是1+10*0.5=6 127.0.0.1:6379> zinterstore zs3 2 zs1 zs2 WEIGHTS 1 0.5 AGGREGATE sum (integer) 2 127.0.0.1:6379> zrange zs3 0 -1 withscores 1) "a" 2) "6" 3) "b" 4) "12"
用途
排序的场景。如按照博客访问量排序文章列表。key是用户id,set中的数据是文章id,每个文章id关联一个score(访问量)。与列表的比较
都可以获取某一范围的元素 列表类型通过链表实现,获取两端数据速度快,元素增多后,访问中间数据速度较慢。所以适合“新鲜事”和“日志”一类的场景。 有序集合是通过散列表和跳跃表实现的,所以读取位于中间部分的数据的速度也很快。时间复杂度O(log(N))。 列表不能简单的调整某个元素的位置,有序集合可以。(修改元素的分数)更多关于redis基本类型和使用方法请点击下面的相关链接










