-
인메모리 저장소 Redis에 대해 파헤치기Redis 2024. 8. 19. 19:44
목차
- 인메모리 저장소란?
- 인메모리 저장소의 필요성
- 인메모리 저장소 Redis 연결방법
1. 인메모리 저장소란?
In Memory 저장소에 데이터를 저장하는 곳으로, 여기서 In Memory는 RAM, 즉 메모리카드를 의미합니다. RAM은 빠른 입출력 과정을 장점으로 가지고 있어 일반적인 관계형 데이터베이스에 비해 더 빠르게 동작하는 대신, 언제든 사라질 수 있는 휘발성 데이터를 다룬다는 차이를 가지고 있습니다. 그래서 특정 게시글의 조회수와 같이 빠르게 업데이트 되는 데이터, 또는 사용자 세션 등 시간이 지나면 삭제돼도 문제가 없는 데이터를 저장하기 위해서 가장 많이 사용된 데이터 베이스입니다.
2. 인메모리 저장소의 필요성
데이터베이스의 목적은 뭘까요? 당연하게도, 데이터를 영구히 저장해서 그 데이터를 필요할 때마다 서비스가 쓸 수 있어야 할것입니다. 이런 데이터베이스의 특성을 영속성이라고 합니다. 하지만, 데이터를 일시적으로 저장해야하는 상황이 있습니다. 예를들어, 사용자의 로그인 정보, 장바구니 같은 기능들은 사용자의 행동에 따라 빈번한 변경이 발생합니다. 기존의 데이터베이스를 사용하는 것은 DB 자체의 부담이 매우 커지고, 사용자도 느린 속도를 경험해야할 것입니다. 이런 상황에서 인메모리 저장소는 최적의 기능을 발휘합니다.
3. 인메모리 저장소 Redis 연결방법
Redis를 설치하는 방법은 여러가지가 있지만, 이 글에서는 Docker를 이용해 Redis를 설치할 예정입니다. 저의 컴퓨터 환경은 아래와 같습니다.
준비물
- Window 11
- Docker
- IntelliJ Ultimate
기본적으로 Docker가 깔려 있어야하기 때문에, Docker가 없으신 분들은 Docker 설치하신 후에 아래와 같은 단계를 밟아주세요.
1. DockerHub에서 Redis 이미지 찾기
https://hub.docker.com/search?q=redis 에 들어가서 redis/redis-stack-server를 찾습니다.
간략하게 말씀드리자면, 미리 만들어둔 Docker Image를 가져와 도커로 실행시킬 목적입니다.
2. 빈 폴더를 만들고, docker-compose.yml을 만듭니다.
저 같은 경우에는 바탕화면에 redis라는 빈 폴더를 만들고 그 안에 docker-compose.yml파일을 만들었습니다.
더보기docker-compose.yml 파일의 내용
services: redis-stack: image: redis/redis-stack container_name: redis-stack-compose restart: always environment: REDIS_ARGS: "--requirepass systempass" ports: - 6379:6379 - 8001:8001
초록 글씨의 systempass 부분이 도커에 설치된 redis의 비밀번호 역할을 합니다.
예를 들어, systempass를 qwer1234로 변경하면 redis의 비밀번호는 qwer1234가 됩니다.
비밀번호를 꼭 기억해주셔야 나중에 IDEA에 데이터베이스를 연결할 때 에러가 나지 않습니다.
3. 터미널에서 해당 폴더로 이동한 후 아래의 명령어를 실행합니다.
윈도우라면 터미널로 이동할때 cd 명령어를 사용하여 폴더를 옮길 수 있습니다. 제 경우는 바탕화면에 만든 redis의 절대 경로로 이동했습니다.
docker compose up -d
4. 다음 명령으로 Redis 컨테이너가 정상적으로 실행되었는지 확인해봅시다.
당연히 3. 과 같은 경로입니다. 만약, 도커가 제대로 포트에 연결하지 못했다면, 스타벅스나 도서관 와이파이 같이 공용 와이파이인지 확인해보세요. 공용 와이파이는 특정 포트를 막아놓는 경우가 있어서 공공장소에서 안되면 집에서 해보시길 바랍니다.
docker compose ps
위의 명령어를 실행했을 때 아래와 같은 로그가 나온다면 성공입니다.
5. 이제 IntelliJ IDEA 에서 연결하기 위해 오른쪽 위에 있는 데이터 베이스를 찾아 클릭합니다.
6. + 를 누르고 Data Source에서 Redis를 선택합니다.
7. 이제 DB와 IDEA를 연동하기 위해, docker-compose.yml파일의 설정에 있는 정보를 입력해줍니다.
저와 같이 설정했다면 아래와 같이 설정해주세요
주의사항이 있습니다.
저희 설정으로 redis에 사용자를 지정하지 않았기 때문에 사용자 칸은 비어있는게 정상입니다.
모든 설정이 동일한데 뭔가 맞지 않다면 Port의 문제일 가능성도 있습니다.
이때는 도커를 종료하고 터미널(윈도우 기준)에서 아래의 명령을 입력합니다.
netstat -ano | findstr 6379
아무것도 나오지 않는다면 다시한번 위의 순서를 따라해보시고, 아니라면 도커를 위해 연결된 포트를 제거합니다.
연결된 포트를 강제종료하는 방법은 아래와 같습니다.
더보기taskkill PID
여기서 PID는 아래 이미지에서 가장 오른쪽 숫자 값입니다.
축하합니다!
여기까지 잘 따라오셨다면 Redis는 잘 설치된 것입니다. 고생하셨습니다.