重庆建设网站的公司简介,销售推广做那个网站,郴州网站制作找工作,人员调动在网站上怎么做基数并不是存储元素#xff0c;存储元素消耗内存空间比较大#xff0c;而是给某一个有重复元素的数据集合#xff08;一般是很大的数据集合#xff09;评估需要的空间单元数#xff0c;所以它没有办法进行存储#xff0c;加上在工作中用得不多#xff0c;我们要介绍一下…基数并不是存储元素存储元素消耗内存空间比较大而是给某一个有重复元素的数据集合一般是很大的数据集合评估需要的空间单元数所以它没有办法进行存储加上在工作中用得不多我们要介绍一下 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.getBean(RedisTemplate.class);
redisTemplate.opsForHyperLogLog().add(HyperLogLog, a, b , c, d, a);
redisTemplate.opsForHyperLogLog().add(HyperLogLog2, a); redisTemplate.opsForHyperLogLog().add(HyperLogLog2, z);
Long size redisTemplate.opsForHyperLogLog().size(HyperLogLog);
System.err.println(size);
size redisTemplate.opsForHyperLogLog().size(HyperLogLog2);
System.err.println(size);
redisTemplate.opsForHyperLogLog().union (des_key,HyperLogLog,HyperLogLog2);
size redisTemplate.opsForHyperLogLog().size(des_key);
System.err.println(size);从上面的代码可以看到增加一个元素到基数中采用 add 方法它可以是一个或者多个元素而求基数大小则是采用了 size 方法合并基数则采用了 union 方法其第一个是目标基数的 key然后可以是一到多个 key。