Redis-ZSet常用命令
zadd key score member[{score member}…]
创建或设置指定key对应的有序集合,根据每个值对应的score来排名,升序。例如有命令 zadd key1 10 A 20 B 30 D 40 C;那么真实排名是 A B D C
zrem key member
删除指定key对应的集合中的member元素
zcard key
返回指定key对应的有序集合的元素数量
zincrby key increment member
将指定key对应的集合中的member元素对应的分值递增加 increment
zcount key min max
返回指定key对应的有序集合中,分值在min~max之间的元素个数
zrank key member
返回指定key对应的有序集合中,指定元素member在集合中排名,从0开始切分值是从小到大升序
zscore key member
返回指定key中的集合中指定member元素对应的分值
zrange key min max [withscores]
返回指定key对应的有序集合中,索引在min~max之间的元素信息,如果带上 withscores 属性的话,可以将分值也带出来
zrevrank key member
返回指定key对应的集合中,指定member在其中的排名,注意排名从0开始且按照分值从大到小降序
zrevrange key start end [withscores]
指定key对应的集合中,分值在 start~end之间的降序,加上 withscores 的话可以将分值以及value都显示出来
zrangebyscore key start end [withscores]
同 zrange命令不同的是,zrange命令是索引在start~end范围的查询,而zrangebyscore命令是根据分值在start~end之间的查询且升序展示
zrevrangebyscore key max min [withscores]
同zrangebyscore命令不同的是,zrangebyscores是根据分值从小到大升序展示,而zrevrangebyscore命令是从max到min降序展示
zremrangebyrank key start end
移除指定key对应集合中索引在start~end之间(包括start和end本身)的元素
zremrangebyscore by min max
同zremrangebyrank命令类似,不同的该命令是删除分值在min~max之间的元素
zinterstore desk-key key-count key…
获取指定数量的key的交集。例如有 key1:{10:A,20:B,30:C},key2{40:B,50:C,60:D},那么命令 zinterstore key3 2 key1 key2 意思就是 将key1 key2这两个集合的交集 赋给key3,如何获取key1与key2的交集呢。 key1中存在 A B C,key2中存在 B C D,那么交集就是 B 和 C,且 B与C对应的score也会叠加,即 key3{B:20+40=60,C:30+50=80}
zunionstore desk-key key-count key…
获取指定数量key的并集,例如有 key1{10:A,20:B,30:C},key2{40:B,50:C,60:D},可以看出 A和D不是key1与key2共有的,但是并集中只要存在就会记录进去,然后B与C是共有的,即 并集的结果就是 key3{10:A,B:60,D:60,C:80}