基数并不是存储元素,存储元素消耗内存空间比较大,而是给某一个有重复元素的数据集合(一般是很大的数据集合)评估需要的空间单元数,所以它没有办法进行存储,加上在工作中用得不多,我们要介绍一下 Redis 的 HyperLogLog 命令。
Redis 的 HyperLogLog 命令
命令行演示。
解说:首先往一个键为 h1 的 HyperLogLog 插入元素,让其计算基数,到了第 5 个命令“pfadd h1 a”的时候,由于在此以前已经添加过,所以返回了 0。它的基数集合是 {a,b,c,d},故而求集合长度为 4;之后再添加了第二个基数,它的基数集合是{a,z},所以在 h1 和 h2 合并为 h3 的时候,它的基数集合为 {a,b,c,d,z},所以求取它的基数就是 5。
在 Spring 中操作基数,代码如下所示。
ApplicationContext applicationContext = new ClassPathXmlApplicationcontext("applicationContext.xml");
RedisTemplate redisTemplate = applicationContext