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

再次查看内存消耗

相关推荐
禾小西1 小时前
Redis 数据结构:快速的 Redis 有哪些慢操作?
数据结构·数据库·redis
行百里er5 小时前
Redis 事务与 Pipeline:批量操作的正确姿势
redis
fengkai45456 小时前
十二、Redis -1
运维·数据库·redis
写后端的胖头鱼7 小时前
Redis 的 RDB 和 AOF
java·数据库·redis
禾小西7 小时前
Redis AOF 日志:宕机了,如何避免数据丢失?
java·redis·mybatis
鱼宵9 小时前
Spring AI 生产化改造:记忆落 Redis、向量落 ES,重启再也不丢
人工智能·redis·spring·elasticsearch·springai
for_ever_love__9 小时前
Redis 数据类型全景:五种基础类型怎么用、什么时候用
数据库·redis·数据类型·hash·使用场景·zset·排行榜
开发者联盟league10 小时前
windows安装uv
windows·uv
*wait for?12 小时前
利用uv安装python包,并运行jupyter
python·jupyter·uv
yuezhilangniao12 小时前
阿里云 CentOS 7 升级 Redis 到 7.2 实录-centos7安装redis7
redis·阿里云·centos