목표
- Redis가 무엇이고 언제 사용하는 것인지 알아보자
- Docker로 Redis를 실행해보자
Redis란 무엇이고 언제, 어떻게 사용하는것일까?
Redis(Remote Dictionary Server)
Redis는 오픈소스기반 NoSQL의 Key-Value Store, In-Memory Database이며 속도와 확장성, 대량 데이터 처리 능력을 제공한다. 여기서 Key-Value Store란 메모리를 기반으로 데이터를 빠르게 읽어올 수 있는 저장소를 의미하며 Disk를 기반으로 하는 RDBMS보다 Read가 빠르다.
💡Key-Value 형태는 HashMap과 유사해 보이는데, 그냥 HashMap을 사용하면 되는거 아닌가?
서버가 1대 있다는 가정에서는 Redis의 장점이 크게 보이지 않지만, 분산환경을 대입하면 그 장점이 보인다. 만약, 유저의 요청이 늘어나 1개의 서버에서 3개의 서버로 증설했다고 했을때, HashMap을 사용한다면 서버간 HashMap을 동기화할 수 없다.
따라서, 별도 Redis Server를 구성하여 사용한다면 서버간 데이터를 동기화할 수 있고 빠른 응답성을 확보할 수 있다.
Redis는 언제 사용하는가?
Redis는 운영 중인 웹서버에서 Key-Value형태의 데이터 타입을 처리해야 하고, I/O가 빈번히 발생해 다른 저장 방식을 사용하면 효율이 떨어지는 경우에 사용한다고 한다. 사용할 수 있는 상황을 몇가지 정리해 보았다.
- 사용자의 세션을 유지하고, 불러오고, 여러 활동들을 추적하는데 사용한다.
- 매우 빠르게 동작한다는 점을 활용해 메세지 큐잉에 사용한다.
- 유튜브 조회수와 같이 1시간도 안돼서 100만 조회수를 넘기는 등 I/O 요청이 많이 반복되는 경우 캐싱 처리를 위해 사용한다.
- Pub/Sub 형식의 메시징을 지원하여 실시간 어플리케이션을 구축해야하는 경우 사용한다.
Docker로 Redis 실행하기
Docker로 Redis를 실행하는 방법은 매우 간단하다.
1. Redis Image 다운로드
docker pull [options] redis
2. redis container 실행
docker run [options] redis
3. redis container cli 접속
docker exec -it [container_id] redis-cli
테스트를 위해 SET, GET을 해보면 아래와 같다.
[ 이어지는 글 ]
https://zzzzseong.tistory.com/10d