memcached分佈式緩存和hibernate結合

先了解一下什麼是memcached

Memcached是由Danga Interactive開發的,高性能的,分佈式的內存對象緩存系統,用於在動態應用中減少數據庫負載,提升訪問速度。Memcached 的緩存是一種分佈式的,可以讓不同主機上的多個用戶同時訪問, 因此解決了共享內存只能單機應用的侷限,更不會出現使用數據庫做類似事情的時候,磁盤開銷和阻塞的發生。
memcached的使用
Memcached服務器端的安裝 (此處將其作爲系統服務安裝)
  下載文件:memcached 1.2.1 for Win32 binaries (Dec 23, 2006)
   1 解壓縮文件到c:\memcached
   2 命令行輸入 'c:\memcached\memcached.exe -d install' 
   3 命令行輸入 'c:\memcached\memcached.exe -d start' ,該命令啓動 Memcached ,默認監聽端口爲 11211
  通過 memcached.exe -h 可以查看其幫助

問題

  如果沒有下載服務器端(如果memcached的使用)開啓memcached服務的話,那麼將出現一系列的錯誤,最主要是報連接的問。所以大家在使用memcached的時候一定要安裝服務器端。

memcached和Hibernate的結合

現在Hibernate實現了memcached的無縫連接,已經說過了,hibernate暴力的地方是他的緩存,hibernate結合memcached也是相當方便,只需配置,啓動服務器沒有錯誤算配置OK啦。去在網上看了一大堆關於hibernate和memcached結合的文章,文章內容基本上都是一致的,鬱悶死,參考價值就少了很多。本人公司正使用memcached作爲Hibernate的二級緩存,在這裏也整理一下相關的內容。

  hibernate的緩存機制是其成爲主流持久層霸主地位的重要組成部分,他的緩存機制是很黃很暴力的。二級緩存是SessionFactory級別的全局緩存,可以通過配置文件的hibernate.cache.provider_class 進行指定。在上次的日誌上有提到相關的配置,在這裏我再次貼一次供需要的人瞭解。

hibernate.cfg.xml

 

 
代碼 <?xml version="1.0" encoding="UTF-8"?>  <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"                                          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">  <hibernate-configuration>  <session-factory name="default">   <property name="hibernate.show_sql">true</property>   <property name="hibernate.format_sql">true</property>   <property name="hibernate.hbm2ddl.auto">update</property>   <!-- <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> -->   <property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>   <property name="hibernate.jdbc.fetch_size">50</property>   <property name="hibernate.jdbc.batch_size">0</property>   <property name="hibernate.default_schema">user</property>         <!-- hibernate-memcache配置-->      <!-- 開啓二級緩存-->      <property name="hibernate.cache.use_second_level_cache">          true       </property>      <!-- 設置緩存類-->      <property name="hibernate.cache.provider_class">com.googlecode.hibernate.memcached.MemcachedCacheProvider</property>      <!-- 設置memcache緩存服務器端口 -->      <property name="hibernate.memcached.servers">localhost:11211</property>      <!-- 設置二級緩存的前綴名稱 -->      <property name="hibernate.cache.region_prefix">quality.cache.ehcache</property>      <!-- 否使用結構化的方式緩存對象  -->      <property name="hibernate.cache.use_structured_entries">true</property>      <!-- 是否緩存查詢結果 -->      <property name="hibernate.cache.use_query_cache">true</property> 
  <mapping resource="com/weiruan/projs/mydc/pojos/Usert.hbm.xml"/>   <mapping resource="com/weiruan/projs/mydc/pojos/Developer.hbm.xml"/>  </session-factory>  </hibernate-configuration>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章