한서버에 여러개의 레디스를 실행 하는 경우 있습니다.
Script 통해 작업 하게 되시면 빠르게 실수없이 설치 할수 있습니다.
간략하게 정리 해봤습니다.
1. 레디스 설치
2. 레디스 설치 대상 파일로 관리 (레디스목록)
3. 레디스 목록 파일 기준으로 환경파일 및 RDB생성
4. 레디스목록 파일 내용을 redis start ,stop ,접속
Redis 환경설정
sysctl vm.overcommit_memory=1
/etc/redis/6379.conf
sed -i "s:protected-mode yes:protected-mode no:g" /etc/redis/6379.conf
sed -i "s:tcp-backlog 511:tcp-backlog 1024:g" /etc/redis/6379.conf
sed -i "s:logfile:#logfile:g" /etc/redis/6379.conf
sed -i "s:# syslog-enabled no:syslog-enabled yes:g" /etc/redis/6379.conf
sed -i "s:# syslog-ident redis:syslog-ident redis(6379):g" /etc/redis/6379.conf
sed -i "s:databases 16:databases 1:g" /etc/redis/6379.conf
vi /etc/init/redis_6379.conf
start on runlevel [!2345] # 시스템종료,리부팅일때 시작 서비시작
stop on runlevel [016] # 서비스 종료
respawn # 프로세스 죽으면 재시작
expect fork # 백그라운드 실행
limit nofile 50000 50000 # file open 갯수
/opt/redis/bin/redis-server /etc/redis/6379.conf
vi /etc/redis/redislist.txt
redis1,6379
redis2,6380
redis3,6380
while read file
do
RDBNAME=`echo $file|cut -d "," -f 1`
PORT=`echo $file|cut -d "," -f 2`
echo $PORT,$RDBNAME
rm -rf /var/lib/redis/$PORT*
rm /etc/redis/$PORT*.conf
rm /etc/init/redis\_$PORT*.conf
rm /var/run/redis\_$PORT*.pid
done < /etc/redis/redislist.txt
while read file
do
RDBNAME=`echo $file|cut -d "," -f 1`
PORT=`echo $file|cut -d "," -f 2`
echo $PORT,$RDBNAME
mkdir /var/lib/redis/$PORT\-$RDBNAME
cp -f /etc/redis/6379.conf /etc/redis/$PORT\-$RDBNAME.conf
cp -f /etc/init/redis_6379.conf /etc/init/redis_$PORT\-$RDBNAME.conf
sed -i "s:pidfile /var/run/redis_6379.pid:pidfile /var/run/redis_$PORT-$RDBNAME.pid:g" /etc/redis/$PORT\-$RDBNAME.conf
sed -i "s:/var/lib/redis/6379:/var/lib/redis/$PORT-$RDBNAME:g" /etc/redis/$PORT\-$RDBNAME.conf
sed -i "s:syslog-ident redis(6379):syslog-ident redis($PORT-$RDBNAME):g" /etc/redis/$PORT\-$RDBNAME.conf
sed -i "s/6379/$PORT/g" /etc/redis/$PORT\-$RDBNAME.conf
sed -i "s/dump.rdb/$RDBNAME.rdb/g" /etc/redis/$PORT\-$RDBNAME.conf
sed -i "s:6379.conf:$PORT\-$RDBNAME.conf:g" /etc/init/redis_$PORT\-$RDBNAME.conf
done < /etc/redis/redislist.txt
while read file
do
RDBNAME=`echo $file|cut -d "," -f 1`
PORT=`echo $file|cut -d "," -f 2`
echo $PORT,$RDBNAME
start redis_$PORT\-$RDBNAME
done < /etc/redis/redislist.txt
ps -ef|grep redis
while read file
do
RDBNAME=`echo $file|cut -d "," -f 1`
PORT=`echo $file|cut -d "," -f 2`
echo $PORT,$RDBNAME
stop redis_$PORT\-$RDBNAME
done < /etc/redis/redislist.txt
ps -ef|grep redis
#rdb File Check
while read file
do
RDBNAME=`echo $file|cut -d "," -f 1`
PORT=`echo $file|cut -d "," -f 2`
echo $PORT,$RDBNAME
redis-cli -p $PORT save
ls /var/lib/redis/$PORT-*
done < /etc/redis/redislist.txt
for port in netstat -napolt|grep LISTEN|grep redis-server|grep -v tcp6|cut -d ":" -f 2|awk '{print $1}'; do echo "Redis instance port : $port";redis-cli -h 127.0.0.1 -p $port info|grep -e ^role -e ^master -e ^slave;echo " "; done