Redis란?
- 가장 손쉽게 사용할 수 있는 In-memory 저장소
- 높은성능 ( 속도 )
- 다양한 활용성
- 현대적인 서버구조에서 세션 관리나 캐시는 빠질 수 없는 구성요소
Redis의 정의
- Remote Dictionary Server
- Storage: 데이터 저장소(데이터 관점)
- Database: 전통적인 DBMS의 역할을 수행(영속성 관점)
- Middleware: 어플리케이션이 이용할 수 있는 유용한 기능을 제공하는 소프트웨어
Redis로 할 수 있는 것?
- 아주 빠른 데이터 저장소로 활용
- 분산된 서버들간의 커뮤니케이션(동기화, 작업 분할 등)
- 내장된 자료구조를 활용한 기능 구현
Key-value 구조의 장점
- 단순성에서 오는 쉬운 구현과 사용성
- Hash를 이용해 값을 바로 읽으므로 속도가 빠름(추가 연산이 필요 없음)
- 분산 환경에서의 수평적 확장성
Key-value 구조의 단점
- Key를 통해서만 값을 읽을 수 있음
- 범위 검색 등의 복잡한 질의가 불가능
Redis를 활용
- Session Store (일반적으로 많이사용)
- Cache (일반적으로 많이사용)
- Limit Rater ( 예를들면 특정 API의 분당 호출 수 )
- Job Queue
Docker 설치
https://www.docker.com/
도커 데스크탑 다운로드 -> 실행 -> !wsl 에러 날경우( PowerShell 실행 -> PS C:\WINDOWS\system32> wsl --update ) 명령어 실행해야 합니다.
Docker Registry에서 Redis 이미지 불러오기
>> docker pull redis
Redis 실행(-d 옵션을 주지 않는 경우 Ctrl + C로 종료해야함)
>> docker run --name my-redis -d -p 6379:6379 redis
Redis 도커 중단
>> docker stop my-redis
Redis 도커 다시실행
>> docker start my-redis
Redis 도커 컨테이너 삭제
>> docker rm my-redis
Redis 도커 이미지 삭제
>> docker rmi redis
Docker Container 안에서 쉘 실행
>> docker exec -it my-redis /bin/sh
Container 내부의 쉘에서 Redis-cli 실행( 호스트와 포트를 지정하지 않으면 127.0.01:6379 사용)
# redis-cli
Redis 커맨드 사용성
1270.0.1:6379> set key1 bananan
1270.0.1:6379> get key1
Redis Key 모두삭제
1270.0.1:6379> flushall
Redis Key 확인 2가지 방법
1. 1270.0.1:6379> dbsize
2. 1270.0.1:6379> keys *