0

memcacheでこのようなものは悪いですか?

1. GET LIST OF KEYS
2. FOR EACH KEY IN LIST OF KEYS
   - GET DATA

キーのリストの長さは約1000になると思います。

これが悪い場合、これを行うためのより良い方法があるかどうか疑問に思っていますか?このようなO(n)クエリがそれほど重要ではない場合、memcacheは十分に高速である可能性があると考えました。たとえば、MySQLではこれを行うことはありません。

ありがとう。

4

1 に答える 1

2

各リクエストは前のリクエストが完了するのを待ってから送信されるため、これは必要以上に遅くなります。memcache サーバーに少しでも遅延がある場合、これはすぐに加算されます: わずか 100 マイクロ秒の遅延 (通常のイーサネット ラウンドトリップ時間) がある場合、これらの 1000 回のルックアップには 10 分の 1 秒かかります。多くのアプリケーション。

これを行う正しい方法は、バッチ リクエストを作成することです。多くのリクエストをサーバーに同時に送信し、すべてのレスポンスを受信することで、レイテンシのペナルティを繰り返し受けることはありません。

python-memcache モジュールには、get_multiこれを行う方法があります。

于 2010-10-22T22:03:11.617 に答える