接着,执行 PFCOUNT 情感分类文章:uv 统计合并后的数据 。
> PFCOUNT 情感分类文章:uv4
将多个 HyperLogLog 合并(merge)为一个 HyperLogLog , 合并后的 HyperLogLog 的基数接近于所有输入 HyperLogLog 的可见集合(observed set)的并集 。
4、Redisson 实战开门见山,Spring Boot 与 Redisson 集成详见前面篇章 , 主要有四个方法 。
- add、addAll,阅读文章调用该方法将数据存入 HyperLogLog 中 。
- count , 统计基数 。
- merge,合并多个 HyperLogLog 为一个 。
@Servicepublic class HyperLogLogService {@Autowiredprivate RedissonClient redissonClient;/*** 将数据添加到 HyperLogLog** @param logName* @param item* @param <T>*/public <T> void add(String logName, T item) {RHyperLogLog<T> hyperLogLog = redissonClient.getHyperLogLog(logName);hyperLogLog.add(item);}/*** 将集合数据添加到 HyperLogLog* @param logName* @param items* @param <T>*/public <T> void addAll(String logName, List<T> items) {RHyperLogLog<T> hyperLogLog = redissonClient.getHyperLogLog(logName);hyperLogLog.addAll(items);}/*** 将 otherLogNames 的 log 合并到 logName** @param logName当前 log* @param otherLogNames 需要合并到当前 log 的其他 logs* @param <T>*/public <T> void merge(String logName, String... otherLogNames) {RHyperLogLog<T> hyperLogLog = redissonClient.getHyperLogLog(logName);hyperLogLog.mergeWith(otherLogNames);}/*** 统计基数** @param logName 需要统计的 logName* @param <T>* @return*/public <T> long count(String logName) {RHyperLogLog<T> hyperLogLog = redissonClient.getHyperLogLog(logName);return hyperLogLog.count();}}
【学透 Redis HyperLogLog,看这篇就够了】
推荐阅读
- 一文读懂 Redis 缓存系统
- Redis Stream 数据结构实现原理真的很强
- 面试为啥都问Redis缓存?赶紧补一下
- 一台服务器上部署 Redis 伪集群
- 为什么创建 Redis 集群时会自动错开主从节点?
- 王者荣耀的段位排行榜是通过Redis实现的?
- Redis断连该如何抢救?
- 一文搞懂Redis架构演化之路
- Redis 为什么这么快?
- Redisson锁机制源码分析