您好,登錄后才能下訂單哦!
這篇“redis如何緩存數(shù)據(jù)庫中數(shù)據(jù)”文章的知識點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“redis如何緩存數(shù)據(jù)庫中數(shù)據(jù)”文章吧。
將數(shù)據(jù)庫的數(shù)據(jù)保存到redis緩存
當(dāng)?shù)谝淮尾樵儠r(shí),緩存沒有對應(yīng)的數(shù)據(jù),則會(huì)查詢數(shù)據(jù)庫,并將數(shù)據(jù)更新到緩存
當(dāng)緩存中有對應(yīng)的數(shù)據(jù)時(shí),則會(huì)直接訪問緩存,則不查詢數(shù)據(jù)庫
這樣在性能優(yōu)化上有很大的幫助
ProvinceServiceImpl
public class ProvinceServiceImpl implements ProvinceService { private ProvinceDao dao = new ProvinceDaoImpl(); @Override public List<Province> findAll() { return dao.findAll(); } /** * 使用redis緩存 * @return */ @Override public String findAllJson(){ //1.先從redis中查詢數(shù)據(jù) //1.1獲取客戶端連接 Jedis jedis = JedisUtils.getJedis(); String province_json = jedis.get("province"); //2.判斷province_json數(shù)據(jù)是否為null if(province_json == null || province_json.length() == 0){ //redis中沒有數(shù)據(jù) System.out.println("redis中沒有數(shù)據(jù),查詢數(shù)據(jù)庫..."); //2.1從數(shù)據(jù)庫中查詢 List<Province> list = dao.findAll(); //2.2將list序列化為json ObjectMapper mapper = new ObjectMapper(); try { province_json = mapper.writeValueAsString(list); } catch (JsonProcessingException e) { e.printStackTrace(); } //2.3將json數(shù)據(jù)存入redis中 jedis.set("province", province_json); //釋放資源 jedis.close(); }else { System.out.println("redis中有數(shù)據(jù),查詢緩存..."); } return province_json; } }
index.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <script src="js/jquery-3.3.1.min.js"></script> <script> $(function (){ //發(fā)送ajax請求,加載所有省份數(shù)據(jù) $.get("provinceServlet",{},function (data){ //[{"id":1,"name":"北京"},{"id":2,"name":"上海"},{"id":3,"name":"廣州"},{"id":4,"name":"武漢"}] //1.獲取select var province = $("#province"); //2.遍歷json數(shù)組 $(data).each(function (){ //3.創(chuàng)建<option> var option = "<option name='" + this +"'>" + this.name + "</option>"; //4.調(diào)用select的append方法追加 province.append(option); }); }); }); </script> <body> <select id="province"> <option>---請選擇省份---</option> </select> </body> </html>
第一次查詢時(shí)
此時(shí)可以看到redis沒有數(shù)據(jù),所以查詢了數(shù)據(jù)庫
第二次查詢
此時(shí)可以看到redis中已經(jīng)有緩存了,所以沒有查詢數(shù)據(jù)庫
注意
當(dāng)數(shù)據(jù)中的數(shù)據(jù)進(jìn)行增刪改時(shí),緩存的數(shù)據(jù)依舊不會(huì)改變,所以當(dāng)進(jìn)行增刪改操作后,應(yīng)該刪除redis中的緩存,然后在重新緩存,從而達(dá)到更新緩存的效果。
以上就是關(guān)于“redis如何緩存數(shù)據(jù)庫中數(shù)據(jù)”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對大家有幫助,若想了解更多相關(guān)的知識內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。