PHP または Python スクリプトは、リモート データベースから IP アドレス (/32 ネットマスク) の大規模なデータセットを定期的に取得します。フェッチの合間に、データセットは一時的に APC または Memcached キー ストアに保存されます。
スクリプトの主な仕事は、指定された IP アドレスがデータベース/キャッシュに存在するかどうかを確認することです (「ブラックリスト」と考えてください)。
次のことを行う最も効率的な(パフォーマンス上の)方法は何ですか?
- IP アドレスを APC/Memcache に保存する
- 指定された 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')
これは大きなリストであり、比較チェックを非常に高速にしたいと考えています。
コメントをお寄せいただきありがとうございます。