学透 Redis HyperLogLog,看这篇就够了( 三 )

接着,执行 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,看这篇就够了】


推荐阅读