Ben*_*Ben 2 algorithm redis hyperloglog
I\xe2\x80\x99m 设计一种算法,基于 60 分钟的滑动比例来计算一组页面上的唯一用户数
\n因此,它需要找到访问特定页面的唯一 IP(或令牌),并将过去 60 分钟内的点击次数总计起来
\n我需要它在规模上非常快(主要是为了写作,但阅读是一个额外的好处)。每个页面可以有 10,000 个用户乘以 1000 个页面。
\n我的研究表明我将 Redis 与 HyperLogLog 结合使用
\n我\xe2\x80\x99m 来自 Memcache 背景,刚接触 Redis。有人能给我任何指点吗?
\n谢谢
\n实现此目的的一种方法是为每个页面/页面集保留一个具有微小分辨率的 HLL 密钥。例如,如果我们正在跟踪“index.html”并且当前时间戳为 0,则可以通过以下方式跟踪 ID 为“abc”的访问者:
PFADD index.html:0 abc
Run Code Online (Sandbox Code Playgroud)
一旦一分钟过去 - 即时间戳 1 为简单起见 - 诸如“def”之类的访问者将被添加到下一个键:
PFADD index.html:1 def
Run Code Online (Sandbox Code Playgroud)
等等。要计算过去 60 分钟内的唯一访问者数量,假设当前时间戳为 100,您需要调用该PFCOUNT命令并向其提供所有这 60 个键的名称,例如:
PFCOUNT index.html:100 index.html:99 ... index.html:41
Run Code Online (Sandbox Code Playgroud)
注意:如果您希望驱逐“旧”计数,请EXPIRE在每次调用 后调用PFADD。
| 归档时间: |
|
| 查看次数: |
957 次 |
| 最近记录: |