hibernate-memcached--在Hibernate中使用Memcached作為一個二級分散式快取
目前最新版本為1.0, 支援Hibernate3.3.
下面是具體的使用方法:
hibernate-memcached需要支援的類庫如下:
配置方法如下:
配置Hibernate使用cache提供類
hibernate.cache.provider_class | com.googlecode.hibernate.memcached.MemcachedCacheProvider |
hibernate.cache.use_query_cache | true |
其它一些引數設定說明:
Property | Default | Description |
hibernate.memcached.servers | localhost:11211 | memcached 服務地址,多個用空格分隔 格式host:port |
hibernate.memcached.cacheTimeSeconds | 300 | 快取失效時間,單位秒 |
hibernate.memcached.keyStrategy | HashCodeKeyStrategy | 快取Key生成儲存HashCode演算法 |
hibernate.memcached.readBufferSize | DefaultConnectionFactory.DEFAULT_READ_BUFFER_SIZE | 從伺服器讀取資料快取區大小 |
hibernate.memcached.operationQueueLength | DefaultConnectionFactory.DEFAULT_OP_QUEUE_LEN | Maximum length of the operation queue returned by this connection factory |
hibernate.memcached.operationTimeout | DefaultConnectionFactory.DEFAULT_OPERATION_TIMEOUT | 操作超時時間設定 |
hibernate.memcached.hashAlgorithm | HashAlgorithm.KETAMA_HASH | 新增快取資料到伺服器時使用的Hash雜湊演算法。 當 hibernate-memcached 設定成 KETAMA_HASH演算法時,注意:預設客戶端API使用的是 HashAlgorithm.NATIVE_HASH |
hibernate.memcached.clearSupported | false | 支援MemcachedCache.clear()方法清空快取。 建議不要開啟。 |
配置示例(本文以Hibernate3.3-entitymanager為例)
配置 persistence.xml檔案
<?xml version="1.0" encoding="UTF-8"?><persistence xmlns="http://java.sun.com/xml/ns/persistence"" target="_new">http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0">
<persistence-unit name="entityManager" transaction-type="RESOURCE_LOCAL"><provider>org.hibernate.ejb.HibernatePersistence</provider><jta-data-source>java:comp/env/jdbc/qualitydb</jta-data-source><properties><property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect"/><property name="hibernate.max_fetch_depth" value="3"/><property name="hibernate.show_sql" value="true"/><property name="hibernate.cache.region_prefix" value="quality.cache.ehcache"/><property name="hibernate.cache.use_second_level_cache" value="true"/><property name="hibernate.cache.use_structured_entries" value="true"/><property name="hibernate.cache.use_query_cache" value="true"/><property name="hibernate.cache.provider_class" value="com.googlecode.hibernate.memcached.MemcachedCacheProvider"/><property name="hibernate.memcached.servers" value="localhost:11211"/></properties></persistence-unit></persistence>
啟動後,提示如下:
2008-08-28 17:10:08,312 JCLLoggerAdapter.java265 INFO -- Starting MemcachedClient...
2008-08-28 17:10:08.718 INFO net.spy.memcached.MemcachedConnection: Added {QA sa=localhost/127.0.0.1:11211, #Rops=0, #Wops=0, #iq=0, topRop=null, topWop=null, toWrite=0, interested=0} to connect queue
2008-08-28 17:10:08.750 INFO net.spy.memcached.MemcachedConnection: Connection state changed for [email protected]
表示我們第一步配置已經成功了,接下來,對需要進行快取的Entity進行配置
1 @Entity
2 @Cache(usage = CacheConcurrencyStrategy.READ_WRITE)//設定要求快取 3 publicclass Student {
4 5 @Id
6 @Column(length=32)
7 private String id;
8 9 @Column(length=20)
10 private string name;
11 12 @OneToMany
13 @Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
14 private Set<Book> books;
15 16 }
Ok,現在配置已經完成。
Good Luck!
Yours Matthew!
相關配置:
<!--開啟二級快取-->
<property name="hibernate.cache.use_second_level_cache">
true
</property>
<!--設定快取提供者 -->
<property name="hibernate.cache.provider_class">
com.googlecode.hibernate.memcached.MemcachedCacheProvider
</property>
<!-- 設定memcached快取伺服器的埠 -->
<property name="hibernate.memcached.servers">
192.168.11.37:11211 192.168.11.37:11212
</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>
相關推薦
hibernate-memcached--在Hibernate中使用Memcached作為一個二級分散式快取
官方網址: http://code.google.com/p/hibernate-memcached/目前最新版本為1.0, 支援Hibernate3.3.下面是具體的使用方法:hibernate-memcached需要支援的類庫如下:配置方法如下:配置Hibernate使
ASP.NET Core與Redis搭建一個簡易分散式快取
本文主要介紹了快取的概念,以及如何在伺服器記憶體中儲存內容。今天的目標是利用IDistributedCache來做一些分散式快取,這樣我們就可以橫向擴充套件我們的web應用程式。 在本教程中,我將使用Redis作為快取。Redis是一個可靠的快速記憶體快取,可以儲存多種型別的物件。Redis正在被Twitt
memcached分散式快取和hibernate結合-- Hibernate+ehcache二級快取技術
Memcached是由Danga Interactive開發的,高效能的,分散式的記憶體物件快取系統,用於在動態應用中減少資料庫負載,提升訪問速度。Memcached 的快取是一種分散式的,可以讓不同主機上的多個使用者同時訪問, 因此解決了共享記憶體只能單機應用的侷限,更
新的Hibernate 4版本中,對於Hql的一個改變
在新的Hibernate 4版本中,對於Hql有一點點改變,如果你還是按照以前的方式去編寫HQL並且用了以下佔位符的方式,就會得到一個警告。 參考資料:https://hibernate.atlassian.net/browse/HHH-8012?page=com.atlassian.jira.p
作為一個新手,最近學習Hibernate執行出現java.lang.UnsupportedClassVersionError: org/hibernate/cfg/Configuration
錯誤如下: java.lang.UnsupportedClassVersionError: org/hibernate/cfg/Configuration : Unsupported major.minorv 百度了很多說要把Hibernate的版本換低一點,但又看到
memcached分散式快取和hibernate結合
先了解一下什麼是memcached Memcached是由Danga Interactive開發的,高效能的,分散式的記憶體物件快取系統,用於在動態應用中減少資料庫負載,提升訪問速度。Memcached 的快取是一種分散式的,可以讓不同主機上的多個使用者同時訪問, 因此解決
Hibernate中in查詢一個問題傳多個引數
</pre><pre name="code" class="java"> public List<UnitGroup> getUnitGroupByUnitId(Integer unitId,String productId) thro
10.16輸入一個字符串,內有數字和非數字字符,如: a123x456 17960? 302tab5876 將其中連續的數字作為一個整數,依次存放到一數組num中。例如123放在num[0]中,456放在num[1]中……統計共有多少個整數,並輸出這些數。
tab lnp zip sm2 cuc ycm rds qt5 tft 10.16輸入一個字符串,內有數字和非數字字符,如: a123x456 17960? 302tab5876 將其中連續的數字作為一個整數,依次存放到一數組num中。例
【Hibernate】Hibernate中使用延遲加載應該註意的事項
取出 struts2 dial 表示 指定 cef init pen ima 1,簡介 在使用一些查詢方法時,方法執行了,但是並沒有立刻發送SQL語句查詢數據庫。而是在訪問對象的getXxx方法時候才觸發SQL執行加載對象數據。這種機制就稱為延遲加載。 2,優點 延
Mcrouter-基於Memcached協議的緩存層流量管理工具(Memcached集群的另一個選擇)(轉)
cache 代碼 自動 open 句柄 不同 github tex key Mcrouter 是一個基於Memcached協議的路由器,它是 Facebook緩存架構的核心組件,在峰值的時候,它能夠處理每秒50億次的請求。近日,Facebook開放了Mcrouter的源代碼
hibernate在Oracle中插入數據,默認字段被設置為null的問題解決
insert語句 span blog 數據庫 添加 *** .cn gpo ber 參考內容: http://blog.sina.cn/dpool/blog/s/blog_90629d5301014a5w.html 在數據庫中一個字段的默認值為1,但是在插入數據後,本來該字
在URL中使用另一個url作為參數時會被`&`截斷的問題
轉換 blog value AD -a result too isset 工具 在URL中使用另一個url作為參數時會被&截斷的問題 下午幫同事寫一個url轉二維碼的小工具時,發生標題中描述的問題。比如:輸入的url是http://www.example.dev/n
Hibernate的配置中,c3p0連接池相關配置
ant 文檔 type artifact -- after per customer 重復 一、配置c3p0 1、導入 hibernate-c3po連接池包,Maven地址是:http://mvnrepository.com/artifact/org.hibernate/
【hibernate】Hibernate中get()和load()的區別
etime () bsp ava fin null void 自己 IT Hibernate中根據Id單條查詢獲取對象的方式有兩種,分別是get()和load(),來看一下這兩種方式的區別。 1. get() 使用get()來根據ID進行單條查詢: 1
LAMP架構中Memcached緩存應用
包括 dev 負載 man username 整型 upd 51cto cal 什麽是Memcached ? Memcached是一套分布式內存對象緩存系統,用於在動態系統中減少數據庫負載,進而提升系統性能。Memcache多數情況是作為數據庫的前端Cache來使用,因為
oracle中,將兩上select語句的結果作為一個整體顯示出來
1、union 對兩個結果集進行並集操作,不包括重複行,同時進行預設規則的排序。 2、union all 對兩個結果集進行並操作,包括重複行,不進行排序。 3、intersect 對兩個結果集進行交集操作,不包括重複行,同是進行預設規則的排序。 4、minus 對兩個結果
SDK中.a包過大,單獨作為一個項目,功能項目引入SDK項目文檔 及Search Paths相關參數說明
選中 none 打開 目的 每次 創建文件 sdk shu com SDK包過大,單獨作為一個項目 項目中使用第三方的SDK包(例如所有的.a文件1G多),導致項目整體過大,這個時候就可以把第三方的.a文件單獨作為一個項目。 每次自動化打包都要從git拉去項目,不用每次都拉
hibernate 對映檔案中id 及id Generator的詳解
所有的生成器都實現了org.hibernate.id.IdentifierGenerator介面。這是一個非常簡單的介面;某些應用程式可以選擇提供他們自己特定的實現。當然,Hibernate提供了很多內建的實現。下面是一些內建生成器的快捷名字: increment
Hibernate在MyEclipse中的部署,連線MySQL資料庫
如今,更多的人使用MyEclipse而不再使用eclipse,MyEclipse比eclipse的方便之處我就不說了,但MyEclipse不是免費的,我也是使用破解版的。 在MyEclipse中如何搭建hibernate環境呢?今天學習一點點想與
Hibernate學習(一)———— 第一個hibernate工程
一、什麼是Hibernate? 輕量級JavaEE應用的持久層框架,是一個完全的ORM框架。(說完這句話,肯定有很多人懵圈了,下面我來一個個解釋) 持久化:將我們想要儲存的資料儲存到硬碟上,也就是我們電腦的磁碟上,為什麼叫持久化呢,就是資料能夠儲存的很久,所以叫持久化,現在