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

再次查看内存消耗

相关推荐
源码学社17 分钟前
DeerFlow Windows 本地运行教程(uv)
windows·uv·沙箱·deerflow·超级智能体·deerflow安装
LCG元33 分钟前
ESP32-IDF 远程固件升级实战:HTTPS OTA + 双分区切换 + 自动回滚
数据库·redis·https
MC皮蛋侠客1 小时前
Redis 系列(十一):高可用(二)——Redis Cluster 集群
数据库·redis·bootstrap
祈禾11 小时前
Redis三大缓存问题与分布式锁
运维·数据库·redis·笔记·分布式·缓存
福大大架构师每日一题18 小时前
Redis 8.10.0 正式发布:紧凑哈希、批量导入、备份恢复、流与时序能力全面升级
数据库·redis·哈希算法
祈禾19 小时前
Redis三大特殊数据类型
运维·服务器·数据库·redis·笔记·缓存
y = xⁿ20 小时前
一文掌握Redis常见八股
数据库·redis·缓存
MC皮蛋侠客1 天前
Redis 系列(五):持久化——RDB、AOF 与混合持久化
数据库·redis·bootstrap
xqqxqxxq1 天前
Redis五大常用数据类型技术笔记
数据库·redis·笔记
acd120091 天前
Redis 缓存和数据库一致性,到底怎么搞?
数据库·redis·缓存