티스토리 뷰

 

사전 작업

 

Docker Desktop을 설치해 줍니다.

https://docs.docker.com/desktop/install/mac-install/

 

Install Docker Desktop on Mac

Install Docker for Mac to get started. This guide covers system requirements, where to download, and instructions on how to install and update.

docs.docker.com

 

 

 

 

 

 

개발 환경

 

MacOS
Docker 24.0.7
Docker Desktop v4.33.0
Redis 7.4.0

 

 

 

 

 

 

버전 확인과 명령어 작동 확인

 

도커를 설치 하시거나 도커 데스크탑을 설치하시고 Mac 터미널에서 아래와 같이 명령어를 작성해 주시면 됩니다.

docker -v				// 도커 버전을 확인하는 명령어
# 출력 : Docker version 24.0.7

docker ps				// 현재 실행중인 컨테이너 목록 보는 명령어
# 출력 : CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

 

현재 실행중인 도커 컨테이너
그림1 도커 명령어 실행

 

 

 

 

 

 

도커에서 Redis 이미지 Pull

 

아래와 같은 명령어를 실행하여 공식 인증 받아있는 Redis 이미지를 받습니다.

docker pull redis

도커에서 Redis 이미지를 pull
그림2 도커에서 이미지 pull

 

 

Tip) 도커 이미지를 삭제하고 싶다면 docker rmi [이미지 ID]

 

 

이미지 확인하기

이미지 잘 다운 받아졌는지 아래와 같은 명령어로 확인해 봅니다.

docker images

그림3 이미지 확인

 

 

 

 

 

 

Redis 서버 띄우기

 

도커를 이용해서 Redis를 띄우는 작업을 하는데
CLI환경에서 Docker의 환경 설정을 바꿀 수도 있을 거라 생각해서 로컬 디렉토리와 컨테이너 디렉토리를 매핑 하려고 합니다.

# 컨테이너 생성
docker run --name redis -p 6379:6379 -v ~/postgres-workspace/redis:/data -v ~/postgres-workspace/redis/redis.conf:/usr/local/etc/redis/redis.conf redis --requirepass 1111

 

  • -name : 컨테이너 이름 설정 (필자가 한 이름 : redis)
  • -p : 포트 번호 설정 (호스트 포트 6379 : 컨테이너 포트 6379 매핑)
  • --requirepass : Redis의 비밀번호 설정입니다. (필자가 한 비밀번호 : 1111)
  • -v : 볼륨 설정 (내가한 볼륨 설정 = 나의 파일 경로 : 도커의 파일 경로)
    즉, 도커 Redis 파일 경로를 나의 파일 경로에서 보겠다라는 의미입니다.

    1) ~/postgres-workspace/redis:/data
    나의 /postgres-workspace/redis 와 컨테이너 /data 디렉토리를 매핑하겠다.
    2) ~/postgres-workspace/redis/redis.conf:/usr/local/etc/redis/redis.conf
    나의 /postgres-workspace/redis/redis.conf 와 컨테이너 /usr/local/etc/redis/redis.conf 파일을 매핑 하겠다.

 

그림4 Redis 실행

 

저렇게 같이 나오면 그냥 바로 나와주시면 됩니다.

 

Tip) 나오실 때는 Ctrl + C로 나오시면 됩니다.

 

 

 

 

 

 

Redis 접속하기

 

그냥 바로 나와서 그런지 Redis 도커 컨테이너가 기동중이지 않을 겁니다.

아래의 명령어를 입력하여 Redis 컨테이너를 기동시켜주시면 됩니다.

# 현재 실행 중인 도커 컨테이너 목록 보기
docker ps

# Redis 기동 Start (docker start [컨테이너명])
docker start redis

 

 

이제 저희는 Redis CLI를 이용하여 Redis 서버로 접속하겠습니다.

Redis 컨테이버 내부로 들어 갑니다.

# docker exec -it [내 컨테이너명] redis-cli
docker exec -it redis redis-cli

 

  • docker exec : 도커 컨테이너에서 명령어를 실행하기 위한 도커 명령어입니다.
  • -it : 인터랙티브 모드와 TTY 모드를 활성화 하여 터미널을 사용할 수 있게 합니다. (반드시 필요)
  • redis : 제 컨테이너 명입니다.
  • redis-cli : Redis CLI 명령어 입니다.

그림5 Redis 접속

 

 

 

 

Redis 간단하게 명령어 배우기

 

서버와 연결을 확인하는 핑.퐁.

# 내가 작성
PING

# 응답
PONG

Redis 서버 상태 정보 보기

# 정보 전체 보기
INFO
# 메모리 정보 보기
INFO memory
# CPU 정보 보기
INFO cpu

키 목록 조회

# 모든 키 값
KEYS *

데이터  관련

# 데이터 (문자열) 을 가져옵니다.
GET [KEY]

# 데이터를 넣습니다.
SET [KEY] [VALUE]

캐시 유효시간 관련

# 해당 데이터 유효시간을 봅니다.
ttl [key]

 

 

 

 

 

Spring Boot와 연결하기

 

의존성을 설치하고 yml에 설정하며 Redis 로직을 간단하게 작성한 것입니다.

이렇게 로직을 사용하여 Redis에 정보를 넣었다면 Redis 도커 컨테이너 내부로 들어가서 확인 해보시기 바랍니다. 

 

build.gradle

implementation 'org.springframework.boot:spring-boot-starter-data-redis'

application.yml

spring:
  data:
    redis:
      host: localhost
      port: 6379
      password: "1111"

RedisService

@Service
@RequiredArgsConstructor
public class RedisService {

    private final RedisTemplate<String, String> redisTemplate;

    // 값 넣기
    public void save(String key, String value, Duration ttl){
        redisTemplate.opsForValue().set(key, value, ttl);
    }

    // 값 가져오기
    public Optional<String> find(String key){
        return Optional.ofNullable(redisTemplate.opsForValue().get(key));
    }

    // 값 삭제하기
    public void delete(String key){
        redisTemplate.delete(key);
    }
}

 

 

 

 

 

Redis 활용 기능 

 

  1. 캐싱으로 최근 검색 목록 나타내기
  2. Pub/Sub 메시징 시스템으로 실시간 채팅
  3. 중복 방문을 제거한 일일 방문자 수

 

감사합니다.

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함