Redis の設定

Redis はビルトインのデフォルト設定を使って、設定ファイルなしでも起動できますが、これはテストおよび開発プロセスにおいてのみ、推奨されます。

Redis を設定する適切な方法は、通常 redis.conf と呼ばれる設定ファイルを与えることです。

redis.conf ファイルは、非常にシンプルなフォーマットで定義された、多数のディレクティブからなります:

keyword argument1 argument2 ... argumentN

以下は設定ディレクティブの例です:

slaveof 127.0.0.1 6380

次の例のように、スペースを含む文字列をクォートで囲んで引数として与えることもできます:

requirepass "hello world"

設定ディレクティブの一覧と、その意味および使い方は、Redis 配布パッケージに同梱されている self documented な redis.conf 中に記載されています。

コマンドラインから引数を与える

Redis 2.6 から、コマンドラインから直接 Redis に設定パラメータを与えることができるようになりました。これはテスト用途に大変便利です。以下の例では、127.0.0.1 のポート 6379 で稼働しているインスタンスのスレーブとして、ポート 6380 で新しい Redis インスタンスを起動しています。

./redis-server --port 6380 --slaveof 127.0.0.1 6379

コマンドライン経由で渡される引数のフォーマットは、redis.conf ファイルで使われるものとまったく同じです。ただし、キーワードには -- というプレフィックスをつけます。

内部的に、引数は redis.conf と同じフォーマットに変換されて、インメモリの一時設定ファイルを生成することに留意してください(ユーザーから指定された設定ファイルがもしあれば、それと結合されます)。

サーバーの稼働中に Redis の設定を変更する

サービスを停止したり再起動することなく、Redis の設定をその場(on the fly)で変更したり、現在の設定をプログラムから問合せたりすることも可能です。このために、 CONFIG SETCONFIG GET といった特別なコマンドを使います。

この方法では、すべての設定ディレクティブをサポートしているわけではないですが、ほとんどのものは期待通りにサポートされています。 CONFIG SETCONFIG GET のページを参照してください。

On the fly で変更された設定は、 redis.conf ファイルに一切影響しない ことに注意してください。したがって、次の Redis 再起動時には古い設定が適用されます。

CONFIG SET を使って変更した設定に追従して、 redis.conf を変更することを忘れないでください。 redis.conf ファイルを、コメントや構造自体に影響を与えることなく、 現在のサーバー設定にしたがって書き換える CONFIG REWRITE というコマンドを提供する計画があります。

Redis をキャッシュとして使う設定

もし Redis をキャッシュ用途としてのみ使う、すなわちすべてのキーはある expire をもつなら、以下の設定を検討してください(最大メモリの制限を 2 メガバイトと仮定しています):

maxmemory 2mb
maxmemory-policy allkeys-lru

このように設定すると、アプリケーション自身で EXPIRE (またはそれと同様の)コマンドを使ってキーに time to live を指定する必要がなくなります。2 メガバイトの制限に達したら、近似的な LRU アルゴリズムによりキーが追い出されるためです。

基本的に、この設定により Redis は memcached と似た動作をします。 Redis を LRU キャッシュとして使う に、より詳しい説明があります。