Redis篇(应用案例 - UV统计)(持续更新迭代)

目录

一、HyperLogLog

二、测试百万数据的统计


一、HyperLogLog

首先我们搞懂两个概念:

UV:全称Unique Visitor,也叫独立访客量,是指通过互联网访问、浏览这个网页的自然人。

1天内同一个用户多次访问该网站,只记录1次。

PV:全称Page View,也叫页面访问量或点击量,用户每访问网站的一个页面,记录1次PV,用户多次打开页

面,则记录多次PV。

往往用来衡量网站的流量。

通常来说UV会比PV大很多,所以衡量同一个网站的访问量,我们需要综合考虑很多因素,

所以我们只是单纯的把这两个值作为一个参考值

UV统计在服务端做会比较麻烦,因为要判断该用户是否已经统计过了,需要将统计过的用户信息保存。

但是如果每个访问的用户都保存到Redis中,数据量会非常恐怖,那怎么处理呢?

Hyperloglog(HLL)是从Loglog算法派生的概率算法,用于确定非常大的集合的基数,而不需要存储其所有

值。

相关算法原理大家可以参考:https://juejin.cn/post/6844903785744056333#heading-0

Redis中的HLL是基于string结构实现的,单个HLL的内存永远小于16kb,内存占用低的令人发指!

作为代价,其测量结果是概率性的,有小于0.81%的误差。

不过对于UV统计来说,这完全可以忽略。

二、测试百万数据的统计

测试思路:我们直接利用单元测试,向HyperLogLog中添加100万条数据,看看内存占用和统计效果如何

经过测试:我们会发生他的误差是在允许范围内,并且内存占用极小

相关推荐
小吴编程之路3 小时前
MySQL 索引核心特性深度解析:从底层原理到实操应用
数据库·mysql
~莫子4 小时前
MySQL集群技术
数据库·mysql
凤山老林4 小时前
SpringBoot 使用 H2 文本数据库构建轻量级应用
java·数据库·spring boot·后端
就不掉头发4 小时前
Linux与数据库进阶
数据库
与衫4 小时前
Gudu SQL Omni 技术深度解析
数据库·sql
咖啡の猫4 小时前
Redis桌面客户端
数据库·redis·缓存
oradh5 小时前
Oracle 11g数据库软件和数据库静默安装
数据库·oracle
what丶k5 小时前
如何保证 Redis 与 MySQL 数据一致性?后端必备实践指南
数据库·redis·mysql
_半夏曲5 小时前
PostgreSQL 13、14、15 区别
数据库·postgresql
把你毕设抢过来5 小时前
基于Spring Boot的社区智慧养老监护管理平台(源码+文档)
数据库·spring boot·后端