Redis实战案例27-UV统计

news/2025/2/12 21:29:57/

1. Redis的HyperLogLog的统计功能

在这里插入图片描述
在这里插入图片描述
示例:
表明HyperLogLog不管加入重复元素多少次都不会让count++,不会计数重复元素,所以适合做UV计数
在这里插入图片描述

2. 简单实现UV测试

通过单元测试,向 HyperLogLog 中添加 100 万条数据,看看内存占用和统计效果如何

在这里插入图片描述

/*** UV统计测试*/
@Test
void testHyperLogLog() {String[] values = new String[1000];int j = 0;//分批·每次一千导入到Redis中for (int i = 0; i < 1000000; i++) {j = i % 1000;values[j] = "user_" + i;if(j == 999) {// 发送到Redis中stringRedisTemplate.opsForHyperLogLog().add("hl1", values);}}// 统计数量Long count = stringRedisTemplate.opsForHyperLogLog().size("hl1");System.out.println("count = " + count);
}

插入了一百万条,最后得到的是997573条,符合概率预期
在这里插入图片描述
再次查看内存消耗
在这里插入图片描述


http://www.ppmy.cn/news/1015029.html

相关文章

第十五次CCF计算机软件能力认证

第一题&#xff1a;小明上学 小明是汉东省政法大学附属中学的一名学生&#xff0c;他每天都要骑自行车往返于家和学校。 为了能尽可能充足地睡眠&#xff0c;他希望能够预计自己上学所需要的时间。 他上学需要经过数段道路&#xff0c;相邻两段道路之间设有至多一盏红绿灯。 京…

看完秒懂:5G技术会给视频监控行业带来怎样的变革?

5G是第五代移动通信技术&#xff0c;能够提供更高的带宽和更快的传输速度&#xff0c;这将为视频技术的发展带来大量机会。随着5G技术的逐步普及与商用&#xff0c;人们将能够享受到更加流畅的高清视频体验&#xff0c;并且5G技术还拥有更低的延迟和更高的网络容量。这些优势不…

5.PyCharm基础使用及快捷键

在前几篇文章中介绍了PyCharm的安装和汉化,本篇文章一起来看一下PyCharm的基本用法和一些快捷键的使用方法。 本篇文章PyCharm的版本为PyCharm2023.2 新建项目和运行 打开工具,在菜单中——文件——新建项目 选择项目的创建位置(注意最好不要使用中文路径和中文名项目名称…

代码随想录算法训练营第42天| 01背包问题,你该了解这些! 滚动数组 416. 分割等和子集

今日学习的文章链接&#xff0c;或者视频链接 第九章 动态规划part04 自己看到题目的第一想法 看完代码随想录之后的想法 416 class Solution { public:bool canPartition(vector<int>& nums) {int sum 0;vector<int> dp(10001, 0);for (int i 0; i &l…

数组(六)-- LC[1851] 包含每个查询的最小区间

1 包含每个查询的最小区间 1.1 题目描述 给你一个二维整数数组 intervals &#xff0c;其中 i n t e r v a l s [ i ] [ l e f t i , r i g h t i ] intervals[i] [left_i, right_i] intervals[i][lefti​,righti​] 表示第 i i i 个区间开始于 l e f t i left_i lefti​…

navigator对象

navigator 对象是 JavaScript 中的一个内置对象&#xff0c;表示当前浏览器的信息和状态。 它提供了访问浏览器相关信息的属性和方法。下面是一些 navigator 对象的常见属性和方法&#xff1a; navigator.userAgent&#xff1a;返回包含浏览器用户代理字符串的字符串。可以使用…

LVS—DR集群的搭建

目录 lvs-dr模式工作原理&#xff1a; 搭建结构&#xff1a; 1、RS&#xff1a; 1&#xff09;两台RS准备好httpd环境和测试文件 2&#xff09;添加虚拟IP&#xff08;vip&#xff09;、添加访问本地vip的静态路由 并抑制ARP 2、DS&#xff1a; 1&#xff09;安装ipvasadm…

【iOS】RunLoop

前言-什么是RunLoop&#xff1f; 什么是RunLoop? 跑圈&#xff1f;字面上理解确实是这样的。 Apple官方文档这样解释RunLoop RunLoop是与线程息息相关的基本结构的一部分。RunLoop是一个调度任务和处理任务的事件循环。RunLoop的目的是为了在有工作的时候让线程忙起来&#…