1. 程式人生 > 資料庫 >Redis 備份、容災及高可用實戰

Redis 備份、容災及高可用實戰

一、一級快取

通過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。