반응형
1. Redis의 이해글에서 Redis가 무엇인지 특성은 무엇인지 이해해 보았다면
이번글에는 Docker로 Redis를 실행하는 방법에 대해 정리해보겠습니다.
해당 글은 Redis를 실행하는 내용이므로 Docker에 대한 자세한 설명글은 기재하지 않았습니다.
1. Docker Image Pull
docker hub에 접속해 redis를 검색해보면 버전을 확인할 수 있습니다.
알맞은 버전을 선택해 이미지를 풀받습니다.
$ docker pull redis:latest
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
redis latest da63666bbe9a 9 days ago 138MB
2. Docker Volume 생성
로컬에서도 Redis 서버에서 복제한 RDB를 관리하기 위해 volume을 생성합니다.
$ docker volume create redis_data
redis_data
3. Docker Network 생성
Master & Slave 연결을 위한 Network를 생성합니다.
$ docker network create redis-network --driver bridge
4. Redis 환경 설정
Redis의 환경을 설정할 파일을 생성합니다.
$ sudo vim redis.conf
아래는 redis.conf 내용입니다. 필요한 설정만 사용하시면 됩니다.
# 연결 가능한 네트위크(0.0.0.0 = Anywhere)
bind 0.0.0.0
# 연결 포트
port 6379
# Master 노드의 기본 사용자 비밀번호
requirepass redis
# 최대 사용 메모리 용량(지정하지 않으면 시스템 전체 용량)
maxmemory 2gb
# 설정된 최대 사용 메모리 용량을 초과했을때 처리 방식
# - noeviction : 쓰기 동작에 대해 error 반환 (Default)
# - volatile-lru : expire 가 설정된 key 들중에서 LRU algorithm 에 의해서 선택된 key 제거
# - allkeys-lru : 모든 key 들 중 LRU algorithm에 의해서 선택된 key 제거
# - volatile-random : expire 가 설정된 key 들 중 임의의 key 제거
# - allkeys-random : 모든 key 들 중 임의의 key 제거
# - volatile-ttl : expire time(TTL)이 가장 적게 남은 key 제거 (minor TTL)
maxmemory-policy volatile-ttl
# == RDB 관련 설정 ==
# 저장할 RDB 파일명
dbfilename backup.rdb
# 15분 안에 최소 1개 이상의 key가 변경 되었을 때
save 900 1
# 5분 안에 최소 10개 이상의 key가 변경 되었을 때
save 300 10
# 60초 안에 최소 10000개 이상의 key가 변경 되었을 때
save 60 10000
# RDB 저장 실패 시 write 명령 차단 여부
stop-writes-on-bgsave-error no
# == AOF 관련 설정 ==
# AOF 사용 여부
appendonly yes
# 저장할 AOF 파일명
appendfilename appendonly.aof
# 디스크와 동기화 처리 방식
# - always : AOF 값을 추가할 때마다 fsync를 호출해서 디스크에 쓰기
# - everysec : 매초마다 fsync를 호출해서 디스크에 쓰기
# - no : OS가 실제 sync를 할 때까지 따로 설정하지 않음
appendfsync everysec
# == Replication 관련 설정 ==
# Slave Redis 설정
slaveof 127.0.0.1 6380
5. Docker Container 실행
아래 명령어를 통해 Pull 받은 이미지로 컨테이너를 실행합니다.
$ docker run \
-d \
--name redis \
-p 6379:6379 \
--network redis-network \
-v ~/{redis.conf 생성 경로}/redis.conf:/etc/redis/redis.conf \
-v redis_data:/data \
redis:latest redis-server /etc/redis/redis.conf
간단히 설명하면 컨테이너 명은 redis, 연결 포트는 6379(default redis port)로 설정하고
위에서 생성한 conf 파일과 network, volume을 연결합니다.
6. Container 및 Redis 접속
아래 명령어를 통해 컨테이너에 접속 후 Redis에 접속합니다.
$ docker exec -i -t redis redis-cli -a "{Redis 비밀번호}"
$ 127.0.0.1:6379>
접속 완료!
반응형
'Redis' 카테고리의 다른 글
6. Spring Redis 분산락(Distribute Lock)을 활용한 동시성 처리 (1) | 2024.03.12 |
---|---|
5. Redis HA(High availability)와 Sentinel (0) | 2024.02.21 |
4. Redis 복제 (0) | 2024.02.15 |
3. Redis 운영과 관리 (0) | 2023.10.01 |
1. Redis의 이해 (1) | 2023.09.30 |