티스토리 뷰
사전 작업
Docker Desktop을 설치해 줍니다.
https://docs.docker.com/desktop/install/mac-install/
개발 환경
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
도커에서 Redis 이미지 Pull
아래와 같은 명령어를 실행하여 공식 인증 받아있는 Redis 이미지를 받습니다.
docker pull redis
Tip) 도커 이미지를 삭제하고 싶다면 docker rmi [이미지 ID]
이미지 확인하기
이미지 잘 다운 받아졌는지 아래와 같은 명령어로 확인해 봅니다.
docker images
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 파일을 매핑 하겠다.
저렇게 같이 나오면 그냥 바로 나와주시면 됩니다.
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 명령어 입니다.
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 활용 기능
- 캐싱으로 최근 검색 목록 나타내기
- Pub/Sub 메시징 시스템으로 실시간 채팅
- 중복 방문을 제거한 일일 방문자 수
감사합니다.
'개발환경' 카테고리의 다른 글
[개발환경] 환경변수 설정하기 : 각 운영체제 MacOS, Windows11, EC2(ubuntu)에서 안전하게 관리하는 방법 (0) | 2024.12.02 |
---|---|
[개발환경] Nuxt 3와 Spring Boot 통신 : 프록시 설정 및 CORS 문제 해결하기! (1) | 2024.07.15 |
[개발환경] 윈도우11에 NginX로 Reverse Proxy와 로드 밸런싱 구성하기 (4) | 2024.07.01 |
[개발환경] npm vs yarn vs pnpm (0) | 2024.05.05 |
[개발환경] Spring Boot3과 Docker로 띄운 PostgreSQL16 연결하기 (0) | 2024.04.03 |
- Total
- Today
- Yesterday
- Cors
- Front
- 비동기
- 프론트
- 네트워크
- aws
- 개발블로그
- JavaScript
- java
- 템플릿
- 개발
- 오라클
- Fetch
- 코딩테스트
- DBeaver
- 자바스크립트
- 프로세스
- 개발자
- Mac
- 데이터 베이스
- spring
- AJAX
- 디자인패턴
- 개발환경
- git
- Spring Security
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |