Created
August 22, 2013 19:58
-
-
Save jschwindt/6312036 to your computer and use it in GitHub Desktop.
Ubuntu 12.04 startup script for multiple Redis servers in the same real server
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
slaveof 10.10.10.10 6380 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Common config | |
bind 0.0.0.0 | |
daemonize yes | |
dir /var/lib/redis | |
timeout 120 | |
loglevel notice | |
databases 16 | |
save 900 1 | |
save 300 10 | |
save 60 10000 | |
stop-writes-on-bgsave-error yes | |
rdbcompression yes | |
rdbchecksum yes | |
# slaveof <masterip> <masterport> | |
slave-serve-stale-data yes | |
slave-read-only yes | |
repl-disable-tcp-nodelay no | |
slave-priority 100 | |
appendonly no | |
appendfsync everysec | |
no-appendfsync-on-rewrite no | |
auto-aof-rewrite-percentage 100 | |
auto-aof-rewrite-min-size 64mb | |
lua-time-limit 5000 | |
slowlog-log-slower-than 10000 | |
slowlog-max-len 128 | |
hash-max-ziplist-entries 512 | |
hash-max-ziplist-value 64 | |
list-max-ziplist-entries 512 | |
list-max-ziplist-value 64 | |
set-max-intset-entries 512 | |
zset-max-ziplist-entries 128 | |
zset-max-ziplist-value 64 | |
activerehashing yes | |
client-output-buffer-limit normal 0 0 0 | |
client-output-buffer-limit slave 256mb 64mb 60 | |
client-output-buffer-limit pubsub 32mb 8mb 60 | |
hz 10 | |
aof-rewrite-incremental-fsync yes |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#! /bin/sh | |
### BEGIN INIT INFO | |
# Provides: redis-server | |
# Required-Start: $syslog $remote_fs | |
# Required-Stop: $syslog $remote_fs | |
# Should-Start: $local_fs | |
# Should-Stop: $local_fs | |
# Default-Start: 2 3 4 5 | |
# Default-Stop: 0 1 6 | |
# Short-Description: redis-server - Persistent key-value db | |
# Description: redis-server - Persistent key-value db | |
### END INIT INFO | |
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin | |
DAEMON=/usr/local/bin/redis-server | |
RUNDIR=/var/run/redis | |
CLI=/usr/local/bin/redis-cli | |
PORT=$(echo $0 | /usr/bin/cut -d'-' -f2) | |
if [ $PORT -lt 1024 ] || [ $PORT -gt 65535 ]; then | |
echo "PORT $PORT is invalid!" 1>&2 | |
echo "Sample file name: redis-6379" 1>&2 | |
exit 1 | |
fi | |
NAME=redis-$PORT | |
DESC=redis-$PORT | |
PIDFILE=$RUNDIR/redis-$PORT.pid | |
CONFIG=/etc/redis/redis-$PORT.conf | |
DAEMON_ARGS=$CONFIG | |
test -x $DAEMON || exit 0 | |
set -e | |
case "$1" in | |
start) | |
echo -n "Starting $DESC: " | |
mkdir -p $RUNDIR | |
touch $PIDFILE | |
chown redis:redis $RUNDIR $PIDFILE | |
chmod 755 $RUNDIR | |
echo "port $PORT" > $CONFIG | |
echo "pidfile /var/run/redis/redis-$PORT.pid" >> $CONFIG | |
echo "logfile /var/log/redis/redis-$PORT.log" >> $CONFIG | |
echo "dbfilename dump-$PORT.rdb" >> $CONFIG | |
if [ -e /etc/redis/_$PORT.conf ]; then | |
echo "include /etc/redis/_$PORT.conf" >> $CONFIG | |
fi | |
echo "include /etc/redis/_common.conf" >> $CONFIG | |
if start-stop-daemon --start --quiet --umask 007 --pidfile $PIDFILE --chuid redis:redis --exec $DAEMON -- $DAEMON_ARGS | |
then | |
echo "$NAME." | |
else | |
echo "failed" | |
fi | |
;; | |
stop) | |
echo -n "Stopping $DESC: " | |
$CLI -p $PORT SHUTDOWN SAVE | |
if start-stop-daemon --stop --retry forever/QUIT/1 --quiet --oknodo --pidfile $PIDFILE --exec $DAEMON | |
then | |
echo "$NAME." | |
else | |
echo "failed" | |
fi | |
rm -f $PIDFILE | |
;; | |
restart|force-reload) | |
${0} stop | |
${0} start | |
;; | |
status) | |
echo -n "$DESC is " | |
if start-stop-daemon --stop --quiet --signal 0 --name ${NAME} --pidfile ${PIDFILE} | |
then | |
echo "running" | |
else | |
echo "not running" | |
exit 1 | |
fi | |
;; | |
*) | |
echo "Usage: /etc/init.d/$NAME {start|stop|restart|force-reload}" >&2 | |
exit 1 | |
;; | |
esac | |
exit 0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment