使用思路
- 当获取数据时,应该先查询缓存,如果缓存中的数据为null,那么这时应该访问后台的数据库.
- 将查询到的数据转化为JSON数据(objectMapper),将JSON串存入redis中.
- 当获取数据时,这时缓存中有数据.将JSON串转化为java对象进行return返回.
测试
@Test
public void test04(){
Jedis jedis = new Jedis("192.168.31.181", 6379);
String username = "user02";
String key = "USER_NAME_" + username;
String result = jedis.get(key);
List<User> userList;
List<User> data = new ArrayList<>();
User user0 = new User();
user0.setId(1);
user0.setName("小明");
user0.setAge(18);
user0.setSex("男");
User user1 = new User();
user1.setId(1);
user1.setName("小明");
user1.setAge(18);
user1.setSex("男");
User user2 = new User();
user2.setId(1);
user2.setName("小明");
user2.setAge(18);
user2.setSex("男");
data.add(user0);
data.add(user1);
data.add(user2);
try {
if (StringUtils.isEmpty(result)){
userList = data;
String userListJson = OBJECT_MAPPER.writeValueAsString(userList);
jedis.set(key,userListJson);
System.out.println("查询数据库");
System.out.println(userList);
}else {
userList = OBJECT_MAPPER.readValue(result, List.class);
System.out.println("查询缓存");
System.out.println(userList);
}
} catch (JsonProcessingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
将redis工具API Jedis交给spring容器管理
配置properties文件
redis.host=192.168.31.181
redis.port=6379
Spring 加载配置文件
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:/property/redis.properties</value>
</list>
</property>
</bean>
Spring容器整合Redis
<bean class="redis.clients.jedis.Jedis" id="jedis">
<constructor-arg name="host" value="${redis.host}"/>
<constructor-arg name="port" value="${redis.port}"/>
</bean>