Redis 備份、容災及高可用實戰
阿新 • • 發佈:2020-11-13
一、一級快取
通過Mybatis自帶快取,且預設開啟一級快取,不開啟二級,當使用同樣的sqlsession物件查詢相同資料時,只有第一次查詢會向資料庫傳送查詢語句,並將查詢結果放入session快取中,之後查詢相同資料時,直接在快取中取用即可。
commit可以清除快取。
二、當二個或多個sqlsession物件查詢相同資料時,那麼可以開啟二級快取。
在conf.xml檔案中的開啟日誌setting標籤下,新增標籤<setting name="cacheEnabled" value="true">
並在想要查詢的資料庫操作語句的mapper.xml檔案中新增宣告開啟二級快取。
<cache/>即可。
然後執行,會出現序列化問題。
然後我們將會涉及到的實體類全部序列化,在實體類新增介面。
implements Serializable。
之後在測試類中:
public static void queryPerson2_yijihuancun2() throws IOException{ //載入配置檔案 Reader reader = Resources.getResourceAsReader("conf.xml"); //SqlsessionFactory -- conection SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader); SqlSession session = sessionFactory.openSession(); personMapper personmapper = session.getMapper(personMapper.class); Person person = personmapper.queryPersonById(1); session.close(); //第二次查詢 SqlSession session2 = sessionFactory.openSession(); personMapper personmapper2 = session2.getMapper(personMapper.class); Person person2 = personmapper2.queryPersonById(1); System.out.println(person.toString()+","+person2.toString()); session2.close(); }
只查了一次。再次減少了對資料庫的蹂躪。- .-
注意:二級快取的適用範圍是同一個namespace。