1

たとえば、Memcached の .NET クライアントを見てみましょう。

ご存知のように、データをキャッシュ サーバーに入れたい場合は、Cache.Add(string key, object data)のような API を呼び出します。memeched クライアントはデータをシリアル化dataし、キャッシュ サーバーに送信します。がdata複雑なオブジェクト (大きなオブジェクト グラフを持つ) である場合、シリアル化プロセスは非常に遅くなる可能性があります。そこで、分散キャッシュインメモリ キャッシュの 2 レベル キャッシュを使用してみます。

アプリケーション コードは、常にインメモリ キャッシュにキャッシュされたデータを要求します。インメモリ キャッシュにキャッシュ データがない場合は、キャッシュ サーバーにキャッシュ データを要求します。インメモリ キャッシュはシリアル化操作を必要とせず、アプリケーションに非常に近いため、インメモリ キャッシュを使用するとパフォーマンスが向上します。

ただし、同期の問題があります。1 つの Web サーバーがデータを変更すると、データベース、そのインメモリ キャッシュ、および分散キャッシュが更新されます。ただし、他の Web サーバーはこの「更新」イベントについて通知されないため、インメモリ キャッシュは更新されません。

問題は、1 つの Web サーバーがデータを更新したときに (インメモリ キャッシュを更新できるように)、他の Web サーバーに通知するにはどうすればよいかということです。ありがとう!

ところで:キャッシュされたデータを「プッシュ同期」方式で同期したい。つまり、キャッシュされたデータは、変更された場合にのみ更新されます。私のアプリケーションでは、多くの読み取りがあり、一部の書き込みしかないためです。

4

0 に答える 0