咨詢
交流群
電話

關于 Jspxcms 緩存

文檔 > 使用心得 2019-05-28 14:25 閱讀

Jspxcms本身并沒有做專門的緩存處理。系統中使用到JPA,所有的緩存都是由JPA處理的。所以這里講的緩存,其實就是JPA的緩存。詳細知識可以查看JPA或Hibernate文檔中有關緩存的部分。

JPA緩存分為三部分,一級緩存、二級緩存和查詢緩存。

一級緩存是JPA固有的功能,即一個session周期內,里面的對象會放到緩存里。一級緩存只緩存單個的對象。在一個session周期內,多次查詢同一個對象,只會讀取一次數據庫,以后都從緩存中讀取。這種緩存默認就打開,而且不能被關閉。

二級緩存是在多個session周期內共享的緩存,比如在一個session周期內查詢的對象,下一個session周期再查詢同一個對象,會從緩存中讀取,而不用查詢數據庫。除了單個的對象,one to many的集合也可以放到二級緩存里面。

查詢緩存可以對sql語句的結果進行緩存。

session周期是指什么呢?這里說的session是JPA的session,不是http的session。使用JPA一般會開啟 Open Session In View,也就是一次http請求就是一個session周期。

在JPA中,二級緩存和查詢緩存默認是關閉的。在Jspxcms中打開了這兩種緩存,配置文件:/WEB-INF/classes/conf/spring.jpa.properties

# 二級緩存
spring.jpa.properties.hibernate.cache.use_second_level_cache=true
# 查詢緩存
spring.jpa.properties.hibernate.cache.use_query_cache=true

緩存對于cms這種需要應對大量訪問的系統,是至關重要的。但因為緩存的存在,直接手動修改數據庫數據,頁面上的數據并不會變化,需要重啟Tomcat才能讀出改動后的數據。如果因為某種原因一定要關閉緩存,可以將這兩種緩存設置為false,但系統性能會大幅下降。

湛江市| 闽清县| 淮阳县| 六安市| 保靖县| 昭苏县| 靖州| 桐梓县| 林周县| 阳谷县| 吉安县| 石首市| 三河市| 隆尧县| 湟中县| 高雄市| 当涂县| 茶陵县| 安陆市| 杭州市| 晋江市| 乌拉特中旗| 襄城县| 平泉县| 南华县| 九江市| 扎鲁特旗| 阿图什市| 高雄县| 普兰店市| 宁陵县| 岳阳县| 昆明市| 南部县| 自治县| 祁东县| 和林格尔县| 青阳县| 万安县| 安达市| 开化县|