基数统计功能
Redis HyperLogLog 实现了基数统计功能,方便统计一组不同元素且数量很大的数据集,且只耗费很小的空间。如统计网站每天访问的独立IP数量;使用PFADD和PFCOUNT,可以轻松实现。
import redis.clients.jedis.Jedis;
import java.util.Random;
public class HyperLog {
public static void main(String[] args) {
String host = "127.0.0.1";
int port = 10011;
Jedis jedis = new Jedis(host, port);
String key = "src_ip";
jedis.del(key);
//随机生成10000个 ip,代表访问"console.tnqacloud.com"的源ip.
for (int i = 0; i < 10000; i++) {
int section1 = new Random().nextInt(255);
int section2 = new Random().nextInt(253);
String ip = "10.10." + Integer.toString(section1) + "." + Integer.toSt
ring(section2);
//System.out.println(ip);
jedis.pfadd(key, ip);127.0.0.1
}
System.out.println("今天访问console.tnqacloud.com的独立ip数为:"+jedis.pfcount(key));
jedis.close();
}
}
输出:
今天访问console.tnqacloud.com的独立ip数为:9218