Skip to content

Instantly share code, notes, and snippets.

@benbonnet
Created August 21, 2019 07:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save benbonnet/cce345eda4044f179b060aeb42fe44a3 to your computer and use it in GitHub Desktop.
Save benbonnet/cce345eda4044f179b060aeb42fe44a3 to your computer and use it in GitHub Desktop.
function createRedisInstance() {
export BASE_PATH=$HOME/redis-storage;
export INSTANCES_COUNT=$(sudo find $BASE_PATH -maxdepth 1 -type d | wc -w);
export PORT=$1
export REDIS_PASSWORD=$2
export DBNAME=redis$PORT;
export INSTALLFOLDER=$BASE_PATH/$DBNAME;
export CONFIGFILE=$INSTALLFOLDER/redis.conf;
export SYSTEMDFILE=/etc/systemd/system/$DBNAME.service;
export PIDFILE=$INSTALLFOLDER/redis.pid;
export LOGFILE=$INSTALLFOLDER/redis.log;
export DUMPFILE=$INSTALLFOLDER/dump.rdb;
export DATADIRECTORY=$INSTALLFOLDER/data;
sudo mkdir -p $INSTALLFOLDER;
sudo chown -R redis:redis $INSTALLFOLDER;
sudo mkdir -p $DATADIRECTORY;
sudo chown -R redis:redis $DATADIRECTORY;
sudo cp -p $HOME/redis-storage/redis.conf.orig $CONFIGFILE;
sudo sed -i "s|pidfile .*|pidfile $PIDFILE|" $CONFIGFILE;
sudo sed -i "s|logfile .*|logfile $LOGFILE|" $CONFIGFILE;
sudo sed -i "s|dir .*|dir $DATADIRECTORY|" $CONFIGFILE;
sudo sed -i "s|port 6379|port $PORT|" $CONFIGFILE;
sudo sed -i "s|bind .*|bind 0.0.0.0|" $CONFIGFILE;
sudo sed -i "s|# requirepass .*|requirepass $REDIS_PASSWORD|" $CONFIGFILE;
sudo cp -p $HOME/redis-storage/redis.service.orig $SYSTEMDFILE;
sudo sed -i "s|ExecStart=.*|ExecStart=/usr/local/bin/redis-server $CONFIGFILE|" $SYSTEMDFILE;
sudo sed -i "s|ReadWriteDirectories=.*|ReadWriteDirectories=$DATADIRECTORY|" $SYSTEMDFILE;
sudo sed -i "s|PIDFile=.*|PIDFile=$PIDFILE|" $SYSTEMDFILE;
sudo systemctl enable $DBNAME.service;
sudo systemctl start $DBNAME.service;
}
createRedisInstance "$@"; exit
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment