1

少し理論的なアドバイスが必要です。これが私の状況です。見つかったアイテムのリストを返す検索システムがあります。ただし、ユーザーは特定の数のアイテムのみを 1 ページに表示することが許可されているため、最初の要求が WCF サービスに送信されると、リスト全体が取得され、リストがユーザーのアイテムの量よりも長くないかどうかがテストされます。取得が許可され、リストが長くない場合、問題はなく、私のサービスはリスト全体を返しますが、そうである場合は問題があります。ユーザーに表示するページを選択させる必要があるため、ユーザーがページを選択する必要があり、「ページ番号ダイアログ」が表示され、ユーザーが2番目のリクエストを送信していることをjavascriptに知らせますページ番号付き。そして、このリクエストに基づいて、Web サービスは関連するアイテムを選択し、それらをユーザーに送り返します。だから私がする必要があるのは、最初のリクエストと2番目のリクエストの間にリスト全体をサーバーに保存することです。セッションについて考えていたのですが、特定のセッションのみにタイムアウトを設定できるかどうかはわかりません (例Session["list"])、リストは 1 回しか使用されず、数千のアイテムを持つことができるため、保持したくありません。サーバー上でそれを長くします。

PS。標準のページネーションを使用できません。シナリオは上記のとおりにする必要があります。

ありがとう

4

1 に答える 1

0

これは、memcached の典型的な使用例のように思えます。これは、一時的な値を格納するためのネットワーク ベースのキー値ストアです。インメモリ状態とは異なり、一時的にキャッシュされた値をサーバー間で共有するために使用でき (複数のノードがあるとします)、リクエスト間で状態を保存する優れた方法です (Cookie を使用することによって引き起こされる遅延を回避します)。各 http 要求でサーバーとの間で送受信されます)。

基本的なアプローチは、リクエストごとに一意の ID を作成し、それをそのユーザーのリクエストの特定の (セットの) memcached キーに関連付けることです。次に、この一意の ID を Cookie (または同様のメカニズム) に保存します。

ただし、メモリは揮発性であるため、いつでも失われる可能性があることに注意してください。実際には、これは頻繁ではなく、memcached アルゴリズムは LRU キューを使用します。詳細http://code.google.com/p/memcached/wiki/NewOverview

http://memcached.org/

Memcached は、データベース呼び出し、API 呼び出し、またはページ レンダリングの結果からの任意のデータ (文字列、オブジェクト) の小さなチャンクのメモリ内キー値ストアです。

私は .net プログラマーではありませんが、実装があるようです:

http://code.google.com/p/memcached/wiki/Clients

.Net memcached クライアント

https://sourceforge.net/projects/memcacheddotnet .Net 2.0 memcached クライアント

http://www.codeplex.com/EnyimMemcached .NET 2.0 で開発されたクライアントは、パフォーマンスと拡張性を念頭に置いています。(コンシステント ハッシュをサポートします。) http://www.codeplex.com/memcachedproviders BeIT Memcached クライアント (最適化された C# 2.0)

http://code.google.com/p/beitmemcached jehiah

http://jehiah.cz/projects/memcached-win32

于 2012-10-08T11:35:20.960 に答える