测试jdk--5万条数据
@Test
public void jdkTest(){
//开始时间
long start = System.currentTimeMillis();
//循环形成50000条数据
for (int i = 1; i <= 50000; i++) {
//使用工具类,构建值
Integer id = i;
String name = UserUtils.getName();
String gender = UserUtils.getSex();
String phone = UserUtils.getPhone();
String mail = UserUtils.getMail();
String birthday = UserUtils.getBirthday();
User u = new User(id, name, gender, phone, mail, birthday);
redisTemplate.opsForValue().set("user"+i, u);
}//结束时间
long end = System.currentTimeMillis();
System.out.println("序列化方式是jdk");
System.out.println("数量50000");
System.out.println("使用时间是"+(end-start));
}
共用时间38秒
测试json--5万条数据
//测试json
@Test
public void jsonTest(){
//开始时间
long start = System.currentTimeMillis();
//循环形成50000条数据
for (int i = 1; i <= 50000; i++) {
//使用工具类,构建值
Integer id = i;
String name = UserUtils.getName();
String gender = UserUtils.getSex();
String phone = UserUtils.getPhone();
String mail = UserUtils.getMail();
String birthday = UserUtils.getBirthday();
User u = new User(id, name, gender, phone, mail, birthday);
redisTemplate.opsForValue().set("user"+i, u);
}//结束时间
long end = System.currentTimeMillis();
System.out.println("序列化方式是json");
System.out.println("数量50000");
System.out.println("使用时间是"+(end-start));
}
共用时间在32秒左右
使用hash测试
@Test
public void hashTest(){
//开始时间
long start = System.currentTimeMillis();
//循环形成50000条数据
for (int i = 1; i <= 50000; i++) {
//使用工具类,构建值
Integer id = i;
String name = UserUtils.getName();
String gender = UserUtils.getSex();
String phone = UserUtils.getPhone();
String mail = UserUtils.getMail();
String birthday = UserUtils.getBirthday();
User u = new User(id, name, gender, phone, mail, birthday);
redisTemplate.opsForHash().put("users"+i, "user"+i, u.toString());
}
//结束时间
long end = System.currentTimeMillis();
System.out.println("序列化方式是hash");
System.out.println("数量50000");
System.out.println("使用时间是"+(end-start));
}
使用时间是28秒左右,
总结:
相比而言,hash所用的时间是最短的,所有,我在kafka上存数据也基本上使用的hash这种数据类型
而hash使用另外一种方式的时间运行着5万条数据,效率达到了20秒左右,这样方式是在循环的外面,使用集合的方式进行存储,有兴趣的可以尝试一下哟