Redis 환경 구축 및 테스트를 위한 Dockerfile 및 기타 리소스가 작성되어있는 저장소입니다.
- Replica, Cluster 구성의 시스템을 테스트해볼 수 있습니다.
- Replica 구성에 Sentinel을 포함하여 테스트해볼 수 있습니다.
- ACL이 적용되어있습니다.
- default 계정으로 접속할 수 있습니다.
- username: default
- password: b555108fbcf909c6
- 다른 계정을 만드시려면 redis/acl/local.acl 파일을 수정해주세요.
- tools/acl_generator.py 스크립트로 계정을 생성할 수 있습니다.
- default 계정으로 접속할 수 있습니다.
- 기본 설정을 위한 파일은 redis/common에 있습니다.
- AOF 설정은 appendonly.conf 를 확인해주세요.
- 계정 추가시 tools/acl_generator.py 스크립트로 생성한 acl 정보를 이 파일에 추가해주세요.
- cluster 설정은 cluster.conf 를 확인해주세요.
- network i/o 다중화 설정은 io-multi-threads.conf 를 확인해주세요.
- 커맨드 관련 설정은 rename-commands.conf 를 확인해주세요.
- AOF 설정은 appendonly.conf 를 확인해주세요.
- cluster 구성을 위한 설정파일은 redis/nodes/cluster에 있습니다.
- replica 구성을 위한 설정파일은 redis/nodes/replica에 있습니다.
- sentinel 구성을 위한 설정파일은 redis/nodes/sentinel에 있습니다.
❯ make help
Usage: make [target]
Targets:
help 지금 보고있는거
account 계정 생성
build 레디스 환경 빌드
up 레디스 환경 실행
client 클라이언트 실행
shell 클라이언트 쉘 접속
start-cluster-master 클러스터 마스터 레디스 실행
stop-cluster-master 클러스터 마스터 레디스 종료
start-cluster-slave 클러스터 슬레이브 레디스 실행
stop-cluster-slave 클러스터 슬레이브 레디스 종료
start-replica-master 레플리카 마스터 레디스 실행
stop-replica-master 레플리카 마스터 레디스 종료
start-replica-slave 레플리카 슬레이브 레디스 실행
stop-replica-slave 레플리카 슬레이브 레디스 종료
build-df [unstable] dragonfly 레디스 환경 빌드
up-df [unstable] dragonfly 레디스 환경 실행
down 레디스 환경 종료
clean-cache 캐시 및 필요없는 리소스 제거
make build MODE=cluster
make up MODE=cluster
Primary 3개, Replica 3개로 구성된 레디스 클러스터를 구성합니다. 별도로 redis-stat, load_generator, retriever 컨테이너가 같이 실행됩니다.
- redis-stat: 클러스터의 상태를 확인할 수 있는 모니터링 툴입니다.
- load_generator: 실행시점부터 종료이전까지 임의의 데이터를 GET, SET 하는 툴입니다.
- retriever: 실행시점부터 종료이전까지 임의의 데이터를 GET 하는 툴입니다.
테스트를 위해 추가되었으며 필요시 각각의 docker-compose 파일에서 제거하시면 됩니다.
make client MODE=cluster TYPE=python
make client MODE=cluster TYPE=node
make client MODE=cluster TYPE=go
Python, Node, Go 클라이언트로 작성된 redis 쉘에 접속할 수 있습니다.
execute_command
를 사용하여 명령어를 레디스 서버에 전송하고 응답을 받도록 작성되었습니다.
Python 클라이언트로 한번 감싸져있을 뿐, 실제 클라이언트와 별다른 차이는 없습니다.
make build MODE=replica
make up MODE=replica
Master, Slave로 구성된 레플리카 레디스 환경을 구성합니다.
장애복구를 위한 Sentinel은 포함되지 않습니다.
make build MODE=sentinel
make up MODE=sentinel
Master, Slave, Sentinel로 구성된 레디스 환경을 구성합니다.
Master 노드에 장애가 발생하면 Sentinel이 Slave 노드 중 하나를 Master로 승격시키기 때문에, 장애 발생 시간을 줄여줍니다.
make down
사용하던 모든 리소스를 정리합니다.
Unstable, 상용환경에 적용하기엔 다소 검증이 필요합니다.
기존의 Redis와 호환되는 Dragonfly 를 사용해보실 수 있습니다.
redis가 지원하는 대부분의 커맨드를 지원하지만 아직 불안정해보입니다.
dragonfly/contrib/docker/docker-compose.yaml 파일을 참조하여 환경을 구성하였습니다.