반응형

스프링 부트에서 레디스를 캐시로 사용하고 있었는데, 다음과 같은 에러가 발생하여서 원활한 작업이 안되고 있었습니다.

org.springframework.data.redis.RedisSystemException: Error in execution;
nested exception is io.lettuce.core.RedisCommandExecutionException:
MISCONF Redis is configured to save RDB snapshots, but it is currently not able to
persist on disk. Commands that may modify the data set are disabled, because this instance
is configured to report errors during writes if RDB snapshotting fails
(stop-writes-on-bgsave-error option). Please check the Redis logs for details about the
RDB error.

레디스 명령어를 실행 중에 예외가 발생한 모양입니다.

 

Redis는 RDB 스냅샷을 저장하도록 되어있는데, 디스크에 저장할 수 없다고 합니다.

이 인스턴스는 RDB 스냅 샷이 실패 할 경우, write 중에 오류를 보고하도록 구성되어 있어서 데이터를 수정할 수있

는 명령이 비활성화된다고 합니다.

 

도커 레디스 컨테이너는 redis.conf 파일이 없기 때문에 기본 설정값으로 실행된다고 합니다.

설정을 하려면 redis.conf를 별도로 볼륨 지정해주거나 직접 설정해주면 됩니다.

컨테이너에 접속해서 redis-cli를 구동시키고 아래 명령어를 입력해주었습니다.

config set stop-writes-on-bgsave-error no

bgsave 에러가 났을 때, write를 멈추는 설정을 꺼주었습니다.

레디스에서는 RDB 방식과 AOF 방식으로 데이터 백업을 지원합니다.

(RDB : 특정 시점에 메모리에 있는 전체 데이터를 바이너리 파일로 만들어내는 것)

(AOF : 명령이 실행될 때마다 해당 명령이 파일에 저장되는 것)

가벼운 휘발성 캐시 용으로만 사용하고 있기 때문에, 데이터 백업이 필요없다 생각되어 두 설정을 비활성 시켜줬습니다.

# disable RDB
config set save ""

# disable AOF
config set appendonly no

 

반응형

+ Recent posts