2011-08-13 43 views
1

我有一个关于NHibernate和memcache二级缓存的问题。假设有以下配置:memcache作为Nhibernate二级缓存

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

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

现在,在DB_A和DB_B表X,同时具有相同的模式具有不同的数据,所以用在DB_A PK = 1行不具有相同的数据,与在DB_B PK = 1行。

我的问题是,将每个应用痛殴对方的数据,或者是第二级缓存足够聪明,创建缓存功能按键不超过一圈的数据库。

+1

可以定义一个前缀为内存缓存键,以便你可以只设置两个站点使用不同的前缀和知道,所有的按键将A_UserTable或B_UserTable ...... – Phill

回答

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

最后一个是最可能使用你。作者做了类似于你正在尝试的事情,除了你(通过某种方式)没有主键冲突让你的生活变得更容易。

+0

我想你误会了。我认为我们实际上可能存在主要关键冲突。 – Andy