1. 首页
  2. 数据库
  3. Redis

redis中hyperloglog可以解决哪些场景的问题



HyperLogLog 主要的应用场景就是进行基数统计。这个问题的应用场景其实是十分广泛的。例如:对于 Google 主页面而言,同一个账户可能会访问 Google 主页面多次。于是,在诸多的访问流水中,如何计算出 Google 主页面每天被多少个不同的账户访问过就是一个重要的问题。那么对于 Google 这种访问量巨大的网页而言,其实统计出有十亿 的访问量或者十亿零十万的访问量其实是没有太多的区别的,因此,在这种业务场景下,为了节省成本,其实可以只计算出一个大概的值,而没有必要计算出精准的值。

对于上面的场景,可以使用 HashMap 、 BitMap 和 HyperLogLog 来解决。对于这三种解决方案,这边做下对比:

- HashMap :算法简单,统计精度高,对于少量数据建议使用,但是对于大量的数据会占用很大内存空间;
- BitMap :位图算法,具体内容可以参考我的这篇文章,统计精度高,虽然内存占用要比 HashMap 少,但是对于大量数据还是会占用较大内存;
- HyperLogLog :存在一定误差,占用内存少,稳定占用 12k 左右内存,可以统计 2^64 个元素,对于上面举例的应用场景,建议使用。

发布者:admin,如若转载,请注明出处:https://ai1024.vip/36328.html

QR code
//