redis with docker

greenTea·2024년 3월 29일

Redis With Docker

redis를 공부를 해보고 싶은데 띄우기 막막한 분들을 위해 준비했습니다.

레디스를 공부하면서 싱글 레디스의 경우 사용하기 편했지만 sentinel, cluster 등을 사용할 때에는 띄우는 것 자체가 문제가 되었습니다.

직접 띄워보는 것도 좋지만 아무래도 어려움이 있기에 도커 컴포즈로 한 번에 띄워서 처리하는 방법을 택하였습니다.

여기 쓰여진 방법을 사용하기 위해서는 도커와 도커 컴포즈에 대해서 어느 정도 알고 있어야 하며 레디스의 기본 설정에 대한 것도 어느 정도 알고 있어야 사용하시기 편합니다.


Redis

1. single redis

  • single redis

2. master-slave

  • master - slave (2 redis)

3. redis-sentinel

  • 1 master, 2 slave, 3 sentinel (3 redis, 3 sentinel)
  • 첫 번째 노드의 네트워크를 이용하도록 한 예제입니다. (같은 네트워크 이므로 localhost로 통신 가능)
  • DNS를 사용할 수 있도록 하였으나 실제로 띄워보면 DNS 관련 에러가 나기에 localhost로 통신 할 수 있도록 같은 네트워크로 묶었습니다.

4. redis-cluster

  • 3 master, 3 slave (6 redis)
  • 첫 번째 노드의 네트워크를 이용하도록 한 예제입니다. (같은 네트워크 이므로 localhost로 통신 가능)

5. redis-exporter

  • single redis, node exporter, redis exporter, prometheus, grafana
  • exporter를 통해 서버의 자원과 레디스의 메트릭을 수집할 수 있습니다.
  • 프로메테우스와 그라파나를 통해 위 메트릭 정보를 수집하여 시각화 할 수 있습니다.

6. redis-cluster-grafana

  • 3 master, 3 slave (6 redis), node exporter, redis exporter, prometheus, grafana
  • 위 5번과 비슷하지만 위와는 다르게 redis clsuter에 대한 정보를 수집하여 시각화 하는 도커 컴포즈 파일입니다.

사용법

redis insight와 같은 도구가 있다면 해당 도구를 이용하시면 됩니다.

1. docker compose가 존재하는 폴더 안으로 이동
2. docker compose 실행

docker compose up -d

3. 도커 컨테이너 안으로 이동
- redis

docker exec -it <container-name> redis-cli

- redis (sentinel)

docker exec -it <container-name>  redis-cli -p <sentinel-port>

- redis (cluster)

docker exec -it <container-name> redis-cli -c -p <sentinel-port>

참고

  • 비밀번호가 설정되어 있는 경우 1111로 되어 있습니다.

  • redis의 경우 .conf 확장자를 가진 파일을 변경하면 되며 프로메테우스의 경우 prometheus.yml 파일을 변경하시면 됩니다.

  • port의 경우 기본 값을 이용하였으나 여러개의 redis를 띄운 경우에는 기본포트(6379)부터 +1씩 하였습니다. sentinel의 경우에는 5000부터 시작하도록 설정하였습니다.

  • 여기서는 모두 redis 최신버전을 사용하도록 지정하였으나 원한다면 특정한 버전을 사용하도록 docker compose의 이미지를 변경하면 됩니다.

  • 위 파일들은 현재 latest로 되어 있으나 redis의 경우 배포 주기가 빠르기 때문에 문제가 생길 수 있습니다. 최소 4이상을 맞추되 7 버전을 중심으로 맞추시면 될 것 같습니다.

참고자료

코딩하는주노 - Redis Cluster 구성

이 분이 없었다면 레디스를 띄우는 것에 많은 어려움을 겪었을 겁니다...

😊깃허브 이동 : redis practice

profile
greenTea입니다.

0개의 댓글