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

再次查看内存消耗

相关推荐
9523613 小时前
Redis - 应用
数据库·redis·分布式·缓存
青山木13 小时前
一把 Redis 分布式锁,踩透四个坑:锁争抢、僵尸锁、锁过期、锁丢失
java·数据库·redis·后端
吴声子夜歌13 小时前
Redis 3.x——客户端
数据库·redis
衣乌安、14 小时前
Redis 分布式锁与任务状态
数据库·redis·分布式
不能只会打代码17 小时前
Day 002 — Python 工程化 & FastAPI & 数据库速通
数据库·redis·python·docker·fastapi·测试
吴声子夜歌19 小时前
Redis 3.x——事务与Lua
redis·lua
执笔论英雄21 小时前
【大模型推理】redis kv cache
数据库·redis·缓存
白露与泡影1 天前
Redis 缓存实战:雪崩、穿透、击穿一次讲透
数据库·redis·缓存
Steadfast_GG1 天前
Redis典型应用 - 缓存,缓存更新策略,内存淘汰策略,缓存预热,缓存穿透,缓存雪崩,缓存击穿
redis·缓存穿透·缓存击穿·缓存雪崩·缓存预热·缓存更新策略·内存淘汰策略
工业胶粘剂技术2 天前
K-1924 UV光固化胶粘剂 电子精密组装与高强粘接 技术参数与选型
uv