【问题标题】:memcache as Nhibernate second level cachememcache 作为 Nhibernate 二级缓存
【发布时间】:2011-10-26 11:42:48
【问题描述】:

我有一个关于使用 NHibernate 和 memcache 进行二级缓存的问题。假设如下配置:

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

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

现在,DB_A 和 DB_B 中的表 X 虽然具有相同的架构,但具有不同的数据,因此 DB_A 中 PK = 1 的行将与 DB_B 中 PK = 1 的行不同。

我的问题是,每个应用程序是否会破坏对方的数据,或者二级缓存是否足够智能,可以创建不重叠数据库的缓存键。

【问题讨论】:

  • 您可以为内存缓存键定义一个前缀,这样您就可以将两个站点设置为使用不同的前缀并知道所有键都是 A_UserTable 或 B_UserTable...

标签: nhibernate memcached second-level-cache collision


【解决方案1】:

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

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

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

【讨论】:

  • 我想你误会了。我认为我们实际上可能存在主键冲突。
猜你喜欢
  • 2013-12-20
  • 2011-09-02
  • 2011-10-18
  • 1970-01-01
  • 1970-01-01
  • 2011-01-22
  • 1970-01-01
  • 2011-06-19
  • 1970-01-01
相关资源
最近更新 更多