package com.panku.web.redis;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.dao.DataAccessException;
import org.springframework.data.redis.connection.RedisConnection;
import org.springframework.data.redis.core.RedisCallback;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.util.StopWatch;
import com.panku.web.entity.User;
/**
* Spring RedisTemplate操作-序列化操作
* @author ccx
*
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:applicationContext.xml")
public class RedisTemplateSerializeUtil {
@Autowired
@Qualifier("redisTemplate")
private RedisTemplate<String, String> stringredisTemplate;
@Autowired
@Qualifier("jdkredisTemplate")
private RedisTemplate<Object, Object> jdkredisTemplate;
@Autowired
@Qualifier("jacksonredisTemplate")
private RedisTemplate<Object, Object> jacksonredisTemplate;
public void flushdb(){
stringredisTemplate.execute(new RedisCallback<Object>() {
public String doInRedis(RedisConnection connection) throws DataAccessException {
connection.flushDb();
return "ok";
}
});
}
@Test
public void test(){
flushdb();
StopWatch sw = new StopWatch("StringRedisSerializer");
sw.start("stringredisTemplate");
for(int i = 0;i<100;i++){
stringredisTemplate.opsForValue().set("hello", "nihao");
stringredisTemplate.opsForValue().get("hello");
}
sw.stop();
sw.start("jdkredisTemplate");
for(int i = 0;i<100;i++){
User u = new User();
jdkredisTemplate.opsForValue().set("hello", u);
jdkredisTemplate.opsForValue().get(u);
}
sw.stop();
sw.start("jacksonredisTemplate");
for(int i = 0;i<100;i++){
User u = new User();
jacksonredisTemplate.opsForValue().set("hello", u);
jacksonredisTemplate.opsForValue().get(u);
}
sw.stop();
System.out.println(sw.prettyPrint());
}
}
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.dao.DataAccessException;
import org.springframework.data.redis.connection.RedisConnection;
import org.springframework.data.redis.core.RedisCallback;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.util.StopWatch;
import com.panku.web.entity.User;
/**
* Spring RedisTemplate操作-序列化操作
* @author ccx
*
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:applicationContext.xml")
public class RedisTemplateSerializeUtil {
@Autowired
@Qualifier("redisTemplate")
private RedisTemplate<String, String> stringredisTemplate;
@Autowired
@Qualifier("jdkredisTemplate")
private RedisTemplate<Object, Object> jdkredisTemplate;
@Autowired
@Qualifier("jacksonredisTemplate")
private RedisTemplate<Object, Object> jacksonredisTemplate;
public void flushdb(){
stringredisTemplate.execute(new RedisCallback<Object>() {
public String doInRedis(RedisConnection connection) throws DataAccessException {
connection.flushDb();
return "ok";
}
});
}
@Test
public void test(){
flushdb();
StopWatch sw = new StopWatch("StringRedisSerializer");
sw.start("stringredisTemplate");
for(int i = 0;i<100;i++){
stringredisTemplate.opsForValue().set("hello", "nihao");
stringredisTemplate.opsForValue().get("hello");
}
sw.stop();
sw.start("jdkredisTemplate");
for(int i = 0;i<100;i++){
User u = new User();
jdkredisTemplate.opsForValue().set("hello", u);
jdkredisTemplate.opsForValue().get(u);
}
sw.stop();
sw.start("jacksonredisTemplate");
for(int i = 0;i<100;i++){
User u = new User();
jacksonredisTemplate.opsForValue().set("hello", u);
jacksonredisTemplate.opsForValue().get(u);
}
sw.stop();
System.out.println(sw.prettyPrint());
}
}