2011-10-04 72 views
16

我有一個瘋狂的想法:使用Redis作爲hibernate的第二級緩存級別。 Redis是內存數據存儲,它支持複製,管道等。目標是在許多tomcat節點之間共享休眠緩存。基本實現應該是將Hibernate緩存對象的鍵值和密鑰存儲起來,並將其全部存儲到Redis數據庫中。你對這個想法有什麼看法?Redis作爲Hibernate二級緩存

最好的問候,

朱利葉斯·

回答

2

我認爲這是一個很酷的想法。這裏是some code,讓你開始

Grails中,例如,Redis是一個plugginable後端休眠,而不是,除非你真的很需要那Hibernate的複雜性,我認爲instead將是正確的道路要走。

但是在真正需要(Hibernate)複雜性的情況下,能夠將這些Hibernate實體保留在Redis中(例如通過JRedis)也是很好的。

1

我認爲你的想法很好。
我看到一個休眠2nd level cache provider for memcached。也許它可以幫助你(即 - 從它的一些想法與redis協同工作?)
如果你能在github或googlecode或任何其他地方開源這項工作,我將不勝感激。

3

剛發現一個github項目就可以了。 https://github.com/debop/hibernate-redis 我認爲它已經完成。它缺少一些文檔。 編輯:剛剛找到一個更好的存儲庫,更好的文檔。 https://github.com/Jongtae/hibernate-redis

在構建並將庫導入項目之後,它就像任何二級緩存一樣簡單。

<property name="hibernate.cache.use_second_level_cache">true</property> 
<property name="hibernate.cache.use_query_cache">true</property> 
<property name="hibernate.cache.region.factory_class">net.daum.clix.hibernate.redis.RedisRegionFactory 
</property> 
<property name="redis.host">"redis.host"</property> 

我在使用redis在我正在工作的網站的一些功能。其他有趣的可能性:分佈式鎖定,tomcat會話管理器。

15

我用Redis做了Hibernate二級緩存

檢查一下吧!

https://github.com/debop/hibernate-redis

+1

是它與Redis的工作與羣集模式 – rahul

+0

沒有,我會改變Java客戶端驅動程序的集羣模式 – Debop

+0

@rahul它在感謝[Redisson]集羣模式(http://redisson.org )引擎蓋下使用的框架 –