Redis 설치(M1 Docker)

공부는 혼자하는 거·2021년 9월 8일
1

DB

목록 보기
3/7

스프링부트로 Redis 테스트하기 전에 Redis 설치를 해보자.

brew로 임베디드 레디스를 설치하지 않는다면, 따로 Docker를 통해서 redis를 설치할 수 있다. 나는 Docker를 통해서 설치하도록 하겠다.

Docker 다운로드

https://docs.docker.com/docker-for-mac/apple-silicon/

애플 M1 preview version을 다운받는다. 언젠가 정식버전이 나오길 기대하면서..

https://www.youtube.com/watch?v=xECyeupbn6c&ab_channel=AJTheEngineer

Redis 설치

https://hub.docker.com/_/redis TAG란에서 다른 걸 받아도 된다.

docker pull redis:alpine //stable한 alpine 버전 땡겨받는다.

이미지는 설치되었다. 여기서 바로 서버를 구동해도 되지만, redis-cli도 같이 구동해서 통신을 해야 하기 때문에, 2개의 컨테이너를 실행할 것이며, 그 2개간 연결을 위해서 docker-network 구성을 먼저 해야 한다.

docker network create redis-net
docker network ls // 생성하고 확인

이제 redis를 실행하는데, 앞서 생성한 network 정보를 같이 집어넣고 실행한다.

sudo docker run --name my-redis -p 6397:6379 --network reids-net -v /Users/Redis:/data -d redis:alpine redis-server --appendonly yes
docker ps // 실행중인 프로세스(컨테이너) 확인
  • -name: 컨테이너 이름 지정
  • -p: 포트 설정(기본: 6379) host에 노출될 포트 지정
  • --network : 네트워크 설정
  • v: 볼륨 폴더 지정(# 외부 폴더에 데이터 저장소를 두고 싶을 경우) host와 연결할 폴더 지정
  • -d: 백그라운드로 실행

appendonly yes 옵션은 AOF방식으로 데이터를 저장(참고:Redis Persistence Introduction)하겠다는 의미입니다. 데이터는 기본적으로 /data 하위에 저장되며 외부에서 해당 폴더를 공유함으로써 해당 컨테이너를 지우고 새로 만들어도 해당 volume을 참고하게 하면 동일한 데이터를 유지 할 수 있습니다.

error while creating mount source path mkdir operation not permitted.

요렇게 블라블라 뜨면, 볼륨폴더를 만들고, 거기에 도컨 데스크탑에서 파일공유 설정하셈


이제 redis-cli로 해당 redis server에 접속하자

docker run -it --network reids-net --rm redis:alpine redis-cli -h my-redis
exit //빠져나가기

—rm: 실행할 때 컨테이너 아이디가 존재하면 삭제 후 run

  • h 뒤에 붙은 컨테이너 명으로 redis-cli를 실행하여 redis server에 접속한다.

redis-server 구동할때, -p 옵션으로 host 에 포트를 노출했기때문에, redis 가 설치된 로컬 pc 에서도 접속이 가능하다.


https://emflant.tistory.com/235

https://blog.naver.com/semtul79/222235108317

https://jistol.github.io/docker/2017/09/01/docker-redis/

추가 설정이 필요하다면...

레디스 서버 포트 변경

  1. Docker용 redis.conf 파일을 만든다.
#daemonize no # yes로 변경시 구동되지 않음
# bind 127.0.0.1
protected-mode no

port 6000 #변경하고자 하는 포트

#logfile "redis.log" #이 옵션 사용시 파일로 로그가 저장되고 프롬프트는 노출되지 않음

#workingdir을 지정
#dir /data

# SECURITY
requirepass changeme

# CLIENTS
maxclients 10000
  • 해당 conf파일을 지정해서 실행 : volume 지정
docker run --rm --name redis -p 6000:6000 -v /Users/jiyeonpark/Desktop/redisvolume/redis.conf:/usr/local/etc/redis/redis.conf -d redis:latest redis-server /usr/local/etc/redis/redis.conf --appendonly yes
  • Config 설정을 Dockerfile 내에서 설정하는 법
  • https://yongho1037.tistory.com/699
  • log 확인docker logs redis
  • 변경된 포트로 client 접속docker run -it --link redis:latest --rm redis redis-cli -h redis -p 6000
  • 테스트> auth changeme #[redis.conf에서 입력한 비밀번호] > info
  • Shell로 Docker 리눅스에 접속하기docker ps docker exec -it myredis /bin/bash

출처: https://littleshark.tistory.com/68

profile
시간대비효율

1개의 댓글

comment-user-thumbnail
2023년 2월 22일

안녕하세요 운영자님
인카토스입니다.
먼저, 댓글로 인사를 드리게 된 점 양해 부탁 드립니다.
이렇게 연락 드린 이유는 이번에 저희가 제작한 도커 각티슈케이스 제품 협찬을 제안드리고 싶어서 연락 드렸습니다.
개발자들에게 많은 사랑은 받은 각티슈케이스입니다.
저희 상품 블로그 포스팅이 가능하실지 여쭙고자 연락드렸습니다.
아니면 클리앙,서버포럼, okky,2cpu,그누보드 등 가입되어 있으신 개발자 커뮤니티가 있으시다면 해당 커뮤니티에 아래와 비슷하게 게시글을 올려주실수 있을까요?

클리앙 : https://www.clien.net/service/board/park/17797443

연락드릴수 있는방법이 댓글밖에 보이지 않아 이렇게 먼저 연락드립니다.

협찬제안에 긍정적인 검토 부탁드리고 제안이 마음에 드신다면 하기 메일로 메일주시면 제품 보내드리도록 하겠습니다.

sungjh0726@naver.com

협찬제품 링크 : https://incatos.shop/surl/P/11

답글 달기