memcache作为Nhibernate二级缓存

时间:2011-08-13 16:57:37

标签: nhibernate memcached second-level-cache collision

我对NHibernate和memcache的二级缓存有疑问。假设以下配置:

网站A使用DB_A。正在缓存表X中的数据。 网站B使用DB_B。正在缓存表X中的数据。

两个网络应用程序共享一个内存缓存服务器。

现在,具有相同模式的DB_A和DB_B中的表X具有不同的数据,因此DB_A中PK = 1的行与DB_B中PK = 1的行的数据不同。

我的问题是,每个应用程序是否会破坏其他应用程序的数据,或者是第二级缓存足够智能,以创建不会超过数据库的缓存密钥。

1 个答案:

答案 0 :(得分:2)

我不确定你是否会重叠,覆盖数据。您需要检查正在使用的缓存键。但是,有趣的读物可能会对您有所帮助:

http://ayende.com/blog/3976/nhibernate-2nd-level-cache

http://ayende.com/blog/3112/nhibernate-and-the-second-level-cache-tips

http://ayende.com/blog/1708/nhibernate-caching-the-secong-level-cache-space-is-shared

最后一个可能最适合你。作者做了类似于你所尝试的事情,除了你通过(不知何故)没有主键冲突让你的生活更轻松。