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

再次查看内存消耗

相关推荐
csdn_aspnet1 小时前
使用 Docker 和 RedisInsight 设置 Redis 以进行本地开发
redis·docker·容器·redisinsight
用户094248568036 小时前
第22章:Redis 持久化 RDB 与 AOF:数据不丢的底线
redis·架构·源码
没有气的汽水6 小时前
升级完客户端,redis 又开始大量返回 MOVED:一个埋了七个月的本地配置
redis
csdn_aspnet6 小时前
如何在本地 Docker 容器中运行 Redis,并使用 Redis Insight 和 Redis CLI 进行管理
redis·docker·容器
IT规划师11 小时前
Redis 数据类型全解 - Bitfield:99% 开发者没用过的位域操作,把内存再砍 80%(七)
redis·bitfield·位域
用户094248568031 天前
第19章:库存扣减与秒杀系统:Redis 扛峰值流量
redis·架构·源码
爱写Bug的浮游1 天前
RTA高频请求下的Redis短缓存工程闭环
redis
没有气的汽水1 天前
redis加了个分片,把线上写挂了一个多小时
redis
xixiaoyunya1 天前
Redis缓存三大问题实战:穿透、击穿、雪崩,我用一个电商秒杀场景讲清楚
数据库·redis·缓存