한서버에 여러개의 레디스를 실행 하는 경우 있습니다.
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
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
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
RDB,redis config, redis start config 파일생성
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
redis start (/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
redis stop (/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
stop redis_$PORT\-$RDBNAME
done < /etc/redis/redislist.txt
ps -ef|grep redis
redis 접속 (/etc/redis/redislist.txt)
#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
마지막 스크립트 서식이 깨져있네요 ㅎㅎ
#kr 태그를 달지 않으시면 한국어 사용자에게 글이 잘 노출되지 않습니다.
스팀잇에 익숙해지실 때까지 #kr-newbie 태그를 사용하시는 것을 추천드립니다.
하루에 한 번 #jjangjjangman 태그를 다시면 좋은 분이 오셔서 보팅을 해 주실겁니다.
#kr 커뮤니티에서 사용하는 태그 목록은 @myfan 님의 태그 정리글에서 확인하실 수 있습니다.
이지스팀잇 가이드북 을 보시면 앞으로 스팀잇 활동하시는데 도움이 되실겁니다.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
감사합니다. ~
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit