2011-08-13 3 views
1

NHibernateとmemcacheで第2レベルのキャッシングに関する質問があります。memcache as Nhibernate second level cache

ウェブサイトAはDB_Aを使用します。テーブルXのデータがキャッシュされています。 ウェブサイトBはDB_Bを使用します。テーブルXのデータがキャッシュされています。

両方のWebアプリケーションが1つのmemcacheサーバーを共有します。

同じスキーマを持つDB_AとDB_BのテーブルXは異なるデータを持つため、DB_AのPK = 1の行は、DB_BのPK = 1の行と同じデータになりません。

私の質問は、各アプリケーションが他のデータを壊すか、または重複していないキャッシュキーを作成するのに十分スマートな第2レベルのキャッシュです。

+1

memcacheキーのプレフィックスを定義することで、両方のサイトが異なるプレフィックスを使用し、すべてのキーが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