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条,符合概率预期

再次查看内存消耗

相关推荐
庞轩px1 小时前
缓存Key设计的“七要七不要”
java·jvm·redis·缓存
難釋懷2 小时前
Redis分片集群手动故障转移
数据库·redis·缓存
wa的一声哭了4 小时前
uv简单使用
uv
mxwin4 小时前
Unity Shader UI 流光效果完全推导指南
ui·unity·游戏引擎·shader·uv
用什么都重名5 小时前
Redis 入门与实践:从基础到 Stream 消息队列
数据库·redis·缓存
苦瓜小生5 小时前
【黑马点评学习笔记 | 实战篇 】| 7-达人探店
redis·笔记·后端·学习
大黄说说5 小时前
测试金字塔的实战演进:单元测试、集成测试与系统测试的深度解析与高效落地
log4j
大树学长5 小时前
【QT开发】Redis通信相关(一)
redis·qt
kishu_iOS&AI5 小时前
PyCharm 结合 uv 进行 AI 大模型开发
人工智能·pycharm·大模型·uv