2011-10-04 76 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 )引擎盖下使用的框架 –