我对NHibernate和memcache的二级缓存有疑问。假设以下配置:
网站A使用DB_A。正在缓存表X中的数据。 网站B使用DB_B。正在缓存表X中的数据。
两个网络应用程序共享一个内存缓存服务器。
现在,具有相同模式的DB_A和DB_B中的表X具有不同的数据,因此DB_A中PK = 1的行与DB_B中PK = 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
最后一个可能最适合你。作者做了类似于你所尝试的事情,除了你通过(不知何故)没有主键冲突让你的生活更轻松。