이 글을 쓰게된 배경
이 글은 레디스 백업 설정을 직접 해보며 레디스에서 기본으로 제공하는 설정 기본 값에 대하여 알아보고 redis.conf 파일을 통해 원하는 레디스 설정을 적용하는 과정에 대한 글입니다.
다룰 내용
- 레디스 설정 적용
- 레디스 설정 파일
레디스 설정 적용
레디스를 사용할때 따로 설정을 하지 않으면 기본적으로 appendOnly 라는 설정이 no로 적용되는데 이 설정은 aof 방식을 사용하지 않겠다는 의미이다. 나는 이전 블로그에서 느낀 것과 같이 rdb 방식과 aof 방식을 모두 사용하고 싶기 때문에 설정파일을 따로 만들어서 aof를 yes로 바꿔야 한다. 아래는 레디스의 기본설정이다.
port | 6379 | Redis 기본 포트 |
bind | 없음 (모든 인터페이스에서 접속 허용) | 최근 버전은 127.0.0.1로 제한됨 |
protected-mode | yes | 외부 접속 차단, 로컬만 허용 |
requirepass | 없음 | 비밀번호 설정 안 되어 있음 |
appendonly | no | AOF 비활성화 (RDB만 사용) |
save | 900 1, 300 10, 60 10000 | RDB 저장 주기 |
dir | 현재 작업 디렉토리 (./) | RDB, AOF 파일 저장 위치 |
dbfilename | dump.rdb | RDB 파일 이름 |
appendfilename | appendonly.aof | AOF 파일 이름 |
logfile | 빈 문자열 (stdout 출력) | 로그 파일 없음 (터미널 출력) |
databases | 16 | 사용할 수 있는 DB 인덱스 수 (0~15) |
maxmemory | 없음 | 메모리 제한 없음 |
maxmemory-policy | noeviction | 메모리 초과 시 아무 것도 제거하지 않음 |
tcp-keepalive | 300 | 연결 유지 시간(초) |
처음에 redis를 설치한다면 /opt/homebrew/etc/redis.conf 이 경로에 redis 설정 파일이 있다.(mac OS 기준)
하지만 이 파일은 설정에 대한 주석이 너무 많아 내가 설정한 내용을 한번에 볼 수 없다. 주석이 엄청 길고 중간중간에 하나씩 설정이 되어있어서 위에서 커스텀하고 아래에 있는 내용을 주석처리 하지 않으면 내용이 덮어쓰인다. 결국 하나하나 찾아서 설정을 다 바꿔줘야 하거나 한곳에 설정을 모아놓고 아래 있는 내용을 주석처리 해야하는데 너무 번거로워서 모든 내용을 삭제하고 내가 설정하고 싶은 것들만 넣어줬다.
설정에 대한 내용을 확인하고 싶으면 https://raw.githubusercontent.com/redis/redis/7.2/redis.conf 에 들어가서 확인하면 되니 괜찮을 것 같다.
레디스 설정 파일
아래는 내가 설정한 redis.conf 파일이다.
bind 127.0.0.1
port 6379
protected-mode yes
requirepass mySecretPassword
save 900 1
save 300 10
save 60 10000
appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec
dir /Users/taek/redis-data
여러가지 설정들이 있지만 백업과 관련된 설정만 이야기하자면
- 900초 동안 키가 1개 이상 변경이 되면 저장.
- 300초 동안 키가 10개 이상 변경이 되면 저장.
- 60초 동안 키가 10000개 이상 변경이 되면 저장.
- appendfsync everysec는 매 초마다 aof 내용을 디스크에 동기화한다(저장한다)는 의미이다.
설정파일을 적용해서 레디스를 실행하려면 다음과 같은 명령어를 사용하면 된다.
redis-server /경로/redis.conf
이제 레디스를 실행한 후 redis-data 디렉토리에 가면 이런 파일들이 있는 것을 확인할 수 있다.
aof 파일을 열어보면 다음과 같이 나오는데 정상적으로 aof 파일이 작성된 것을 볼 수 있다.
redis-cli에들어가서
> set hello world
> get hello
를 실행한 결과이다.
cat appendonly.aof.1.incr.aof
*2
$6
SELECT
$1
0
*3
$3
set
$5
hello
$5
wrold
'Redis' 카테고리의 다른 글
레디스 데이터 영속성 방식 (0) | 2025.04.01 |
---|---|
조회수 최적화(Redis Pipe + Batch) (0) | 2025.02.15 |