Redis常用命令有序集合键HyperLogLog键

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis常用命令有序集合键HyperLogLog键相关的知识,希望对你有一定的参考价值。

  • zet 有序集合,元素为string类型,元素具有唯一性,不重复。每个元素都会关联一个double类型的score,表示权重,通过权重将元素从小到大排序。没有修改操作,虽然每个元素必不相同,但是score可以相同

zadd key score1 member1 score2 member2 ...  # 添加
zadd fruits 1.0 apple 2.4 banana 4 watermelon 5 orange

# 返回指定范围内的元素,索引从左侧开始,第一个元素为0,
# 索引可以是负数,表示从尾部开始计数,如-1表示最后一个元素;
# 当给定withscores选项时,元素和分值一并返回
zrange key start stop [withscores]  
zrange fruits 0 -1
zrange fruits 0 -1 withscores

zrevrange key start stop [withscores]  # 按照分值从大到小降序排列,其他同上
zrevrange fruits 0 -1 withscores

zrangebyscore key min max [withsocres] [limit offset count]  # 返回score值在min和max之间的成员
zrangebyscore fruits 5 9

zrevrangebyscore key max min [withsocres] [limit offset count]  # 按照分值降序排列,返回score值在max和min之间的成员
zrevrangebyscore fruits 5 4 withscores

zscore key member  # 返回成员member的score值
zscore fruits apple

zrem key member1 member2 ...  # 删除指定元素
zrem fruits banana watermelon

zremrangebyscore key min max  # 删除权重在指定范围的元素
zremrangebyscore fruits 1 3

zremrangebyrank key start stop  # 元素按照升序排列下,删除指定排名范围内的元素,排名从0开始
zremrangebyrank fruits 1 2

zincrby key increment member  # 为有序集合指定元素的分值加上增量increment,如果没有这个集合、元素,则直接创建
zincrby fruits 1 banana

zcard key   # 返回有序集合包含的元素数量
zcard fruits

zrank key member  # 返回指定元素在有序集合中的排名,其中排名按照元素的分值从小到大排序
zrank fruits apple   --> 1

zrevrank key member  # 返回成员在有序集合中的逆序排名,排名到0结束
zrevrank fruits apple  --> 3

zcount key min max  # 返回有序集合在升序排列下分值在min和max之间的元素数量
zcount fruits 1 4

zunionstore destkey numkeys key [key...]  # 计算并集,结果存储到destkey,numkeys指定进行计算的集合个数
zadd fruits-8-13 300 apple 200 banana 150 cherry
zadd fruits-8-14 250 apple 300 banana 100 cherry

zinterstore destkey numkeys key [key...]  # 计算交集,结果存储到destkey,numkeys指定进行计算的集合个数
zunionstore fruits-8-13&14 2 fruits-8-13 fruits-8-14  # 得到8月13、14两天所有水果的总数


  • HyperLogLog 使用常量空间估算大量元素的基数,即使输入元素的数量或体积非常非常大,计算基数所需的空间总是固定的,并且是很小的。每个HyperLogLog键花费12kb内存,可以计算接近2^64个基数,HyperLogLog只会根据输入元素来计算基数,而不会存储输入元素,所有它不能返回输入的各个元素

pfadd key member [member...]  # 将任意数量的元素添加到指定的HyperLogLog
pfadd unique::ip::counter 192.168.0.1
pfadd unique::ip::counter 192.168.10.1

pfcount key [key...]  # 当之给定一个HyperLogLog时,返回给定HyperLogLog的基数估算值;当给定多个HyperLogLog时,得出一个合并的HyperLogLog,并返回
pfcount unique::ip::counter

pfmerge destkey sourcekey [sourcekey...]  # 将多个HyperLogLog合并成一个HyperLogLog,合并后的HyperLogLog的基数估算是对所有HyperLogLog进行并集计算得出的
pfadd str1 apple banana cherry
pfadd str2 cherry durian mongo
pfmerge str1&str2 str1 str2
pfcount str1&str2



本文出自 “戴柏阳的博客” 博客,请务必保留此出处http://daibaiyang119.blog.51cto.com/3145591/1962376

以上是关于Redis常用命令有序集合键HyperLogLog键的主要内容,如果未能解决你的问题,请参考以下文章

Redis的常用命令和8大数据类型常用操作大全

Redis 基础 -- HyperLogLog概率算法(计算集合的近似基数)和HyperLogLog的常用命令

redis数据结构之无序集合(set)有序集合(zset)基数(HyperLogLog)

redis数据结构之无序集合(set)有序集合(zset)基数(HyperLogLog)

Redis中3种特殊的数据类型(BitMapGeo和HyperLogLog)

Redis中有序集合的常用命令有哪些?