2013-10-18 10 views
5

変数環境を使用してredis.confで動的パスを設定する「/ホーム/ ABC」私はディレクトリへのパスを持っている環境変数MY_HOMEを持って

は今、私はredis.confファイルを持っているIこの

redis.conf

pidファイルの$のMY_HOME /ローカルの/ var/PIDを/ redis.pid

ログファイルの$ MY_HOME /ローカルは/ var/log/redis.logのように、このパスを設定する必要があります

dir $ MY_HOME/local/var/lib/redis/

私の設定ファイルは環境変数に基づいてパスを選ぶように、コマンドラインで実行します。

+0

残念なことに、Redis構成(少なくとも2.6.16ではなく)で環境変数をサポートしていないように見えます。 – incarnate

答えて

-1

解決策も見つかりますが、redis configはenv varをサポートしていません。

    は、スクリプトでのRedisを起動するスクリプトのenv VARを取得し、Redisの設定を変更
  1. :私は考えて は、2の方法があります。
  2. コマンドラインで起動を再開し、パラメータとしてenv varを送信します。
2

Redisはstdinから設定を読み取ることができるため、@jolestarの提案とよく似たことをします。プレースホルダ変数をredis.confに入れて、私のRedisランチャでsedを使って置き換えます。たとえば:

========== 
$MY_HOME/redis/redis.conf 
========== 
... 
pidfile {DIR}/pids/server{n}.pid 
port 123{n} 
... 

は、それから私は、Redisのを開始するためのスクリプトを持っている:

========== 
runredis.sh 
========== 
DIR=$MY_HOME/redis 
for n in {1..4}; do 
    echo "starting redis-server #$n ..." 
    sed -e "s/{n}/$n/g" -e "s/{DIR}/$DIR/g" < $DIR/redis.conf | redis-server - 
done 

私は永遠にこのアプローチを使用してきた、それがうまく動作します。

関連する問題