redis緩存優化
一、問題
在Javaweb項目中,如果每次刷新,所有資源都重新從數據庫中讀取,這樣每次效率會很低,在這里可以使用redis非關系型數據庫,將一些不經常變化得資源加載進內存中。提高效率。
二、解決辦法
在准備查詢數據得時候先別從關系型數據庫(例如mysql)中查尋,先從redis中查詢有沒有自己需要得數據,
三、具體操作
public String findAllJson() {
//1.從redis中查詢數據
Jedis jedis = JedisPoolUtils.getJedis();
String province_json = jedis.get("province");
//判斷province_json的數據是否為null,如果是,從數據庫加載到redis,不是,直接用redis
if (province_json == null || province_json.length()==0){
//從數據庫中查找
List<Province> ps = dao.findAll();
//將list序列化為json,並存入redis中
ObjectMapper mapper = new ObjectMapper();
try {
province_json = mapper.writeValueAsString(ps);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
//3.將json數據存入redis中
jedis.set("province",province_json);
jedis.close();
}
return province_json;
}
四、注意
- 通常使用redis存儲一些不經常變化的數據。
- 在執行增刪改操作的時候,需要先將redis中對應的數據刪除,再從數據庫中更新數據
