2013-10-18 11 views
5

Ho un MY_HOME variabile d'ambiente che ha un percorso di una directory '/ home/abc'Impostazione percorso dinamico nel redis.conf usando la variabile d'ambiente

ora, ho un file redis.conf In cui io necessario impostare questo percorso come questo

redis.conf

pidfile $ MY_HOME/local/var/PID/redis.pid

file di log $ MY_HOME/local/var/log/redis.log

dir $ MY_HOME/local/var/lib/Redis/

come facciamo in linea di comando, così che i miei file di configurazione raccoglie il percorso in base alla variabile di ambiente.

+0

Sembra che non ci sia supporto per le variabili di ambiente in configurazione Redis (almeno non in 2.6.16), sfortunatamente. – incarnate

risposta

-1

trovo anche una soluzione, ma la configurazione di redis non è supportata per env var. penso che hanno 2 metodo:

  1. start up Redis da uno script, script Get env var e cambiare Redis config.
  2. start up redis dalla riga di comando e invia env var come parametro.
2

Poiché Redis può leggere la sua configurazione da stdin, faccio qualcosa di molto simile a quanto suggerito da @jolestar. Inserisco variabili segnaposto nel mio redis.conf e poi li sostituisco utilizzando sed nel mio launcher Redis. Per esempio:

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

poi ho uno script per avviare 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 

Sto usando questo metodo per sempre e funziona bene.

Problemi correlati