2011-08-12 6 views
5

私は、SEOに優しいURLをキーとし、厄介なクエリ文字列のURLを値としてRedisで動的データベースを維持したいと考えています。私はNginxからリクエストを受け取ったときにこれを直接呼び出す必要があります。厄介なクエリ文字列のURLを取得し、Apacheに渡してコンテンツを提供します。Redisを使用してnginxのURLマップを提供

私はフラットマップファイルを持っていると思っていましたが、それは非常に巨大(200,000+エントリ)であり、cronジョブなどで頻繁に更新する必要があります。

私の考えでは、このようなものです:私はnginxのためHttpRedisモジュールをチェックアウトされているが、例は本当にまばらで、それがキャッシュされたコンテンツを提供に対してよりギヤード思わ

map $uri $new { 
    # instead of this... 
    # include /path/to/the/nginx_map.txt; 
    # I want to do this... 
    redis_magic_thing GET $uri; 
} 

。私もRedis2モジュールをチェックアウトしましたが、それは過度のようです。私は普通の古いGETコマンドを実行するだけです。

HttpRedisモジュールを使用してこれを行い、Redisに直接接続することはできますか?もしそうなら、そのような構成はどのように見えますか?

ご協力いただきありがとうございます。

+1

Nginxはイベントポーリングを使用し、Redisはシングルスレッドです。両方とも100%メモリ内でなければならず、継続時間の参照ですが、Nginxはシングルスレッドではないので、20k RPSを超える場合はRedisを使用するよりもはるかに高速です。あなたのデータが頻繁に変更されず、ApacheでURLマッピングを処理しないといい理由があれば、マップにファイルをダンプし、inotifyを使用してアップデート後にnginx configをリロードすることをお勧めします。 – ColinM

答えて

1

HttpRedisがキャッシュに合わせるようになっていることは間違いありません。 redis2モジュールを使用する方が良いでしょう。 redis2が提供するより一般的なケースでは、実行する必要があるコマンドがより適切に提供されます。

関連する問題