【Redis7】10大数据类型之HyperLogLog类型

1. HyperLogLog

Redis的HyperLogLog是一种高级数据结构,专门用于基数估算。它主要用于在极低的空间成本下计算一个数据集中不重复元素的数量(即基数)。HyperLogLog是基于概率的数据结构,能够以极高的效率和极小的内存占用(固定12KB)来近似计算2^64个不同元素的基数,特别适合处理大规模数据集的统计计数,如网站独立访客(UV)计数等场景。

但是,因为 HyperLogLog 只会根据输入元素来计算基数,而不会储存输入元素本身,所以 HyperLogLog 不能像集合那样,返回输入的各个元素。

2. 常用命令

  • PFADD key element [element ...]:向HyperLogLog添加元素。
  • PFCOUNT key [key ...]:估算单个或多个HyperLogLog的基数。
  • PFMERGE destkey sourcekey [sourcekey ...]:将多个HyperLogLog合并到一个destkey中。

3. 示例

127.0.0.1:6379> pfadd k1 1 2 3 4 5 6
(integer) 1
127.0.0.1:6379> pfcount k1
(integer) 6
127.0.0.1:6379> pfadd k2 3 3 4 5 5 6 7
(integer) 1
127.0.0.1:6379> pfcount k2
(integer) 5
127.0.0.1:6379> pfmerge k3 k1 k2
OK
127.0.0.1:6379> pfcount k3
(integer) 7
127.0.0.1:6379> 

补充: HyperLogLog属于string类型,因为 HyperLogLog 只会根据输入元素来计算基数,而不会储存输入元素本身.因此get命令无法查看到元素

127.0.0.1:6379> pfadd key1 1 1 2 2 3 3
(integer) 1
127.0.0.1:6379> type key1
string
127.0.0.1:6379> get key1
"HYLL\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80]f\x80Mt\x80Q,\x8cC\xf3"
127.0.0.1:6379> 

相关推荐

  1. Redis7】10数据类型HyperLogLog类型

    2024-05-11 07:48:06       34 阅读
  2. redis特殊数据类型-Hyperloglog(基数统计)用法

    2024-05-11 07:48:06       35 阅读
  3. Redis】10数据类型Hash类型

    2024-05-11 07:48:06       30 阅读
  4. Redis7】10数据类型Bitmap类型

    2024-05-11 07:48:06       33 阅读
  5. Redis7】10数据类型Set类型

    2024-05-11 07:48:06       34 阅读
  6. Redis数据类型-五基本数据类型

    2024-05-11 07:48:06       57 阅读
  7. 2.Redis10数据类型

    2024-05-11 07:48:06       43 阅读
  8. redis常用5数据类型

    2024-05-11 07:48:06       35 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-11 07:48:06       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-11 07:48:06       101 阅读
  3. 在Django里面运行非项目文件

    2024-05-11 07:48:06       82 阅读
  4. Python语言-面向对象

    2024-05-11 07:48:06       91 阅读

热门阅读

  1. 概率论学习-笔记1

    2024-05-11 07:48:06       30 阅读
  2. C++语法|可调用对象和函数对象

    2024-05-11 07:48:06       38 阅读
  3. Mysql之SQL Mode问题

    2024-05-11 07:48:06       34 阅读