我们将用三种不一样的方式来测量
第一种jdk
Spring容器中配置RedisTemplate。key系列化器StringRedisSerializer。value系列化器为JdkSerializationRedisSerializer
public void addJDK() {
User user = new User();
long stare = System.currentTimeMillis();
for (int i =1; i <=50000; i++) {
user.setId(i);
user.setName(StringUtil.getChineseName());
user.setSex(StringUtil.getSex());
user.setPhone(StringUtil.getPhoneNo());
user.setEmail(StringUtil.getEmail(3, 20));
user.setBirthday(StringUtil.getBirthday());
rt.opsForValue().set("key"+i, user);
}
long end = System.currentTimeMillis();
System.out.println("jdk方式共消耗"+(end-stare)+"ms");
System.out.println("共有五万条数据");
}
第二种json
Spring容器中配置RedisTemplate。key系列化器StringRedisSerializer。value系列化器为Jackson2JsonRedisSerializer
public void addJson() {
User user = new User();
long stare = System.currentTimeMillis();
for (int i =1; i <=50000; i++) {
user.setId(i);
user.setName(StringUtil.getChineseName());
user.setSex(StringUtil.getSex());
user.setPhone(StringUtil.getPhoneNo());
user.setEmail(StringUtil.getEmail(3, 20));
user.setBirthday(StringUtil.getBirthday());
rt.opsForValue().set("key"+i, user);
}
long end = System.currentTimeMillis();
System.out.println("json方式共消耗"+(end-stare)+"ms");
System.out.println("共有五万条数据");
}
第三种hash
Spring容器中配置RedisTemplate。key系列化器StringRedisSerializer。hashKey系列化器StringRedisSerializer,hashValue系列化器StringRedisSerializer
public void addHash() {
User user = new User();
long stare = System.currentTimeMillis();
for (int i =1; i <=50000; i++) {
user.setId(i);
user.setName(StringUtil.getChineseName());
user.setSex(StringUtil.getSex());
user.setPhone(StringUtil.getPhoneNo());
user.setEmail(StringUtil.getEmail(3, 20));
user.setBirthday(StringUtil.getBirthday());
rt.opsForHash().putIfAbsent("Key"+i, "key"+i, user.toString());
}
long end = System.currentTimeMillis();
System.out.println("hash方式共消耗"+(end-stare)+"ms");
System.out.println("共有五万条数据");
}
相比之下
jdk方式共消耗20299ms
共有五万条数据
------------------------------------------------
json方式共消耗19932ms
共有五万条数据
------------------------------------------------------
hash方式共消耗20619ms
共有五万条数据
相比之下hash快一点