Redis实战案例27-UV统计

1. Redis的HyperLogLog的统计功能


示例:

表明HyperLogLog不管加入重复元素多少次都不会让count++,不会计数重复元素,所以适合做UV计数

2. 简单实现UV测试

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

java 复制代码
/**
 * 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条,符合概率预期

再次查看内存消耗

相关推荐
TT哇7 小时前
@[TOC](计算机是如何⼯作的) JavaEE==网站开发
java·redis·java-ee
蚰蜒螟9 小时前
Spring 和 Lettuce 源码分析 Redis 节点状态检查与失败重连的工作原理
java·redis·spring
Runing_WoNiu9 小时前
Redis主从架构、哨兵模式及集群比较
数据库·redis·架构
海梨花1 天前
【从零开始学习Redis】项目实战-黑马点评D2
java·数据库·redis·后端·缓存
trayvontang1 天前
Python虚拟环境与包管理工具(uv、Conda)
python·conda·uv·虚拟环境·miniconda·miniforge
鼠鼠我捏,要死了捏2 天前
生产环境Redis缓存穿透与雪崩防护性能优化实战指南
redis·cache
zru_96022 天前
Spring Boot 单元测试:@SpyBean 使用教程
spring boot·单元测试·log4j
曾经的三心草2 天前
微服务的编程测评系统11-jmeter-redis-竞赛列表
redis·jmeter·微服务
努力努力再努力wz2 天前
【c++深入系列】:万字详解模版(下)
java·c++·redis
2301_793086872 天前
Redis 04 Reactor
数据库·redis·缓存