0

PHP または Python スクリプトは、リモート データベースから IP アドレス (/32 ネットマスク) の大規模なデータセットを定期的に取得します。フェッチの合間に、データセットは一時的に APC または Memcached キー ストアに保存されます。

スクリプトの主な仕事は、指定された IP アドレスがデータベース/キャッシュに存在するかどうかを確認することです (「ブラックリスト」と考えてください)。

次のことを行う最も効率的な(パフォーマンス上の)方法は何ですか?

  1. IP アドレスを APC/Memcache に保存する
  2. 指定された IP を保存されている IP リストと比較します。

私がこれまでに思いついたこと:

代替案 1 すべての IP アドレスを APC の単一のキーの値として大きな配列リストとして保存し、次に

if (in_array("192.168.0.1", $ip_list_from_cache))

代替案 2 各 IP をキー名として APC に保存してから、

if (apc_exists('192.168.0.1')

これは大きなリストであり、比較チェックを非常に高速にしたいと考えています。

コメントをお寄せいただきありがとうございます。

4

1 に答える 1