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

再次查看内存消耗

相关推荐
栗子~~6 小时前
JAVA - 二层缓存设计(本地缓冲+redis缓冲+广播所有本地缓冲失效) demo
java·redis·缓存
努力成为AK大王6 小时前
超全 Maven 核心知识点总结
log4j
Mr. zhihao9 小时前
深入解析redis基本数据结构
数据结构·数据库·redis
:-)9 小时前
uv使用教程
uv
柿柿快乐12 小时前
Redis 入门第一课:全局命令、内部编码与单线程模型
redis·学习·缓存·基础教学
猿儿本无心13 小时前
快速搭建Python项目(Vscode+uv+FastAPI)
vscode·python·uv
Tirzano13 小时前
超大型组和用户缓存redis
redis·缓存·哈希算法
阿维的博客日记14 小时前
zset实现延迟队列
redis·zset
无小道14 小时前
Redis——string类型相关指令
redis·指令·string
码云骑士16 小时前
Redis 入门实战:从 NoSQL 概念到安装与基础操作详解(一)
数据库·redis·缓存