文章目录
- 💖前言
- 一、💜问题引出
- 二、💖解决方案
💖前言
🌱本文主要介绍在一个大型流量系统中如何统计每个用户的访问记录。
一、💜问题引出
🌟在网站中做
UV
(用户访问记录)呢是必不可少的,传统方式呢,一般用过redis的hash(哈希)存储用户访问信息,对于访问量不大的系统来说呢,还是可以的,不至于把redis内存给撑爆
,为什么呢?
🌟我们做一个分析,假如说淘宝一天的用户访问量是
2个亿
,我们存储的是用户的IP地址,IP V4地址是15个字节
,我们来计算一下,需要多大的空间,2亿* 15=3G
,妈的,哈麻批
🌟
一天3G
,一个月就是3* 30=90G
, 那个程序员敢这么干,第二天就被辞了,哈哈!那么有什么更好的方法呢,请看下面分解:
二、💖解决方案
使用Redis的
HyperLogLog
案例:
1)🐶记录UV
Long uv= redisTemplate.opsForHyperLogLog().add("uv", ip);
2)🐶统计UV
long uv=redisTemplate.opsForHyperLogLog().size("uv");