Memcached는 Redis와 함께 캐시(cache) DB로 많이 사용됩니다. 캐시가 필요한 이유는 일반적으로 DB에서 데이터를 조회하는 것은 느리기 때문입니다. 물론 트래픽이 많지 않은 상황에서는 충분히 감당할 수 있지만, 트래픽이 많은 상황이라면 항상 DB에서 데이터를 조회하는 것은 문제가 될 수 있습니다. 대신 데이터를 빠르게 조회할 수 있는 Redis, Memcached와 같은 캐시 DB를 활용하면 훨씬 더 빠르게 데이터를 조회할 수 있습니다.
보통 자주 조회되거나 최근에 조회된 데이터를 캐시 DB에 저장하여 그 데이터에 대한 조회는 캐시 DB를 활용하게 만듭니다. 캐시 DB에 없다면 이제 MySQL, MongoDB와 같은 일반 DB에서 데이터를 조회하게 하는 것이죠.
오늘은 docker-compose로 Memcached 컨테이너를 생성하고 실행하는 방법에 대해 살펴보겠습니다.
1. Memcached 도커 이미지 가져오기
우선 memcached 도커 이미지를 도커허브에서 가져옵니다.
docker pull memcached
2. docker-compose.yml 작성
docker-compose.yml 파일을 작성합니다. .yaml로 하셔도 관계 없습니다.
version: "3.1"
services:
memcached_container:
image: memcached:latest
container_name: memcached_test
ports:
- 11211:11211
volumes:
- ./memcached/data:/data
restart: always
Memcached의 경우 메모리에만 데이터를 저장하기 때문에 컨테이너를 내리면 데이터가 유실됩니다. 만약 캐시 데이터의 유실을 원치 않으시면 Redis를 사용하시면 됩니다.
3. docker-compsoe로 컨테이너 생성 및 실행
docker-compose.yml 파일이 존재하는 디렉토리에서 다음 명령을 실행합니다.
docker-compose up -d
docker-compose up 명령은 docker-compose.yml에 정의되어 있는 모든 서비스 컨테이너를 한 번에 생성하고 실행하는 역할을 수행합니다. -d 옵션을 붙여준 이유는 백그라운드에서 실행되게 하기 위함입니다.
memcached 컨테이너가 잘 생성되어서 실행되고 있는지 docker ps -a 명령으로 확인합니다.
관련 글
- [docker] docker-compose로 Redis 컨테이너 실행하기
참고자료
[1] https://realpython.com/python-memcache-efficient-caching/
'DevOps > docker' 카테고리의 다른 글
[docker] 리눅스 서버에서 사용될 이미지를 맥북에서 빌드할 때 주의할 점 (0) | 2023.07.05 |
---|---|
[docker] Dockerfile 상에 poetry install 명령 추가할 때 --no-root 넣어 주는 이유 (0) | 2023.07.04 |
docker로 설치한 MySQL을 DBeaver로 연결할 때 Public Key Retrieval is not allowed 에러 해결법 (0) | 2023.06.13 |
[docker] 도커 이미지 빌드 명령어 docker build (0) | 2023.01.27 |
[docker] 도커 컨테이너, 이미지 삭제하기(docker rm, rmi) (0) | 2023.01.10 |
[docker] docker-compose로 Redis 컨테이너 실행하기 (0) | 2023.01.08 |
[docker] 도커 이미지 .tar 파일로 압축하기 (0) | 2022.12.24 |
[docker] 도커 이미지명 변경하기(docker tag) (0) | 2022.12.22 |