#!/bin/bash #######################install redis scripts############################################# REDIS_VERSION='2.8.13' REDIS_GZIP='redis-'$REDIS_VERSION'.tar.gz' REDIS_URL='http://download.redis.io/releases/'$REDIS_GZIP REDIS_HOME='/usr/local/redis/latest' REDIS_PORT='6379' REDIS_SENTINEL_PORT='26379' ####################functions ---------------------------------------------- function logMessageToFile(){ echo '[ '$1' ] - ['$(date "+%Y-%m-%d %H:%M:%S")'] - '$2 >> /var/log/redis.log } function installRedis(){ logMessageToFile "INFO" 'installRedis' mkdir /usr/local/redis cd /usr/local/redis logMessageToFile "DEBUG" "Downloading redis archive from: $REDIS_URL" wget $REDIS_URL tar xzf $REDIS_GZIP rm -f $REDIS_GZIP ln -s /usr/local/redis/redis* latest cd $REDIS_HOME yum install -y gcc-c++ jemalloc-devel checkRPMWasInstalled gcc-c++ checkRPMWasInstalled jemalloc-devel logMessageToFile "DEBUG" "Compiling redis..." make } function configureRedis(){ logMessageToFile "INFO" "configureRedis" mkdir /etc/redis mkdir /var/redis cd $REDIS_HOME cp src/redis-server /usr/local/bin cp src/redis-cli /usr/local/bin cp utils/redis_init_script /etc/init.d/redis_$REDIS_PORT sed -i '2i # chkconfig: 234 95 20' /etc/init.d/redis_$REDIS_PORT sed -i '3i # description: Redis is a persistent key-value database' /etc/init.d/redis_$REDIS_PORT sed -i '4i # processname: redis' /etc/init.d/redis_$REDIS_PORT sed 's/^REDISPORT=.*/REDISPORT='$REDIS_PORT'/' -i /etc/init.d/redis_$REDIS_PORT cp redis.conf /etc/redis/$REDIS_PORT.conf mkdir /var/redis/$REDIS_PORT sed 's/^daemonize .*/daemonize yes/' -i /etc/redis/$REDIS_PORT.conf sed 's/^pidfile .*/pidfile /var/run/redis_'$REDIS_PORT'.pid/' -i /etc/redis/$REDIS_PORT.conf sed 's/^port .*/port '$REDIS_PORT'/' -i /etc/redis/$REDIS_PORT.conf sed 's/^loglevel .*/loglevel notice/' -i /etc/redis/$REDIS_PORT.conf sed 's/^logfile .*/logfile /var/log/redis_'$REDIS_PORT'.log/' -i /etc/redis/$REDIS_PORT.conf sed 's/^dir .*/dir /var/redis/'$REDIS_PORT'/' -i /etc/redis/$REDIS_PORT.conf chkconfig --add redis_$REDIS_PORT chkconfig --level 234 redis_$REDIS_PORT on } function startRedis(){ logMessageToFile "INFO" "Starting redis on port $REDIS_PORT..." service redis_$REDIS_PORT start } function installAndConfigureRedis(){ logMessageToFile "INFO" "installAndConfigureRedis" installRedis configureRedis } installAndConfigureRedis startRedis