에러 원인

'Redis Service Stop::(error) NOAUTH Authentication required' 해당 에러 문구를 봤다는 것은 redis 의 requirepass 를 설정 했을 경우가 99%입니다.

requirepass 는 redis 캐쉬를 사용하기 위한 패스워드! 즉 인증을 통해서만 데이터를 쓰고 읽게 하겠다 라는 것이죠.

yum 을 통해서 설치를 하셨다면 /etc/redis.conf 에서 requirepass 를 설정 하셨을 겁니다.

해결 방법

방법은 의외로 간단합니다.

우선 /etc/redis.conf 파일에서 requirepass 에 설정된 패스워드를 알아 두세요.

그 후에 아래와 같이 하시면 됩니다.

[root@localhost ~]# vim /usr/bin/redis-shutdown
#!/bin/bash
#
# Wrapper to close properly redis and sentinel
test x"$REDIS_DEBUG" != x && set -x

REDIS_CLI=/usr/bin/redis-cli

# Retrieve service name
SERVICE_NAME="$1"
if [ -z "$SERVICE_NAME" ]; then
   SERVICE_NAME=redis
fi

# Get the proper config file based on service name
CONFIG_FILE="/etc/$SERVICE_NAME.conf"

# Use awk to retrieve host, port from config file
HOST=`awk '/^[[:blank:]]*bind/ { print $2 }' $CONFIG_FILE`
PORT=`awk '/^[[:blank:]]*port/ { print $2 }' $CONFIG_FILE`

# Just in case, use default host, port
HOST=${HOST:-127.0.0.1}
if [ "$SERVICE_NAME" = redis ]; then
    PORT=${PORT:-6379}
else
    PORT=${PORT:-26739}
fi

# shutdown the service properly
$REDIS_CLI -h $HOST -p $PORT shutdown

수정 해야 할 부분은 맨 아래 부분에 있습니다.

$REDIS_CLI -h $HOST -p $PORT shutdown

위 구문에 redis.conf 에 있었던 패스워드(requirepass)를 -a 옵션과 함께 추가하하시면 됩니다.

$REDIS_CLI -h $HOST -p $PORT -a 패스워드 shutdown