Redis는 메모리 기반의 데이터 저장소이다. 데이터를 저장하고 불러오는 속도가 매우 빠르기 때문에 캐싱, 세션 관리, 메시지 브로커, 대기열 등 다양한 용도로 사용된다.
Redis는 NoSQL 데이터베이스이며 Key-Value 저장소 모델을 따른다.
Redis는 인메모리 데이터 구조이며 컴퓨터의 메인 메모리(RAM)에 데이터를 올려서 사용한다. 이 방식은 보조 저장 장치(HDD, SSD)에서 데이터를 끌어다 사용하는 방식에 비해 굉장히 빠른 속도를 보인다. 이러한 점에서 알 수 있듯이, Redis를 사용하면 I/O 작업을 발생시키지 않기 때문에 사용자가 많은 환경에서 성능적인 이점을 얻을 수 있다. 또한 스프링 프레임워크와 같은 웹 개발 환경에서 Redis를 사용하여 사용자의 세션을 관리할 수도 있다.
Redis의 가장 중요한 특징은 싱글스레드로 동작한다는 것이다. 따라서 Atomic한 성질을 가진다. 실제 명령어 동작은 패킷 단위로 전달되며 패킷이 쌓여 명령 커맨드가 완성되면 명령을 실행한다.
일반적으로 캐시(cache) 매커니즘과 동일하다. 사용자의 요청을 처리하여 응답하는 과정에서 데이터베이스에 I/O 작업을 하기 전, Redis를 통해 캐싱되어 있는지 확인하고 데이터가 캐싱되어 있다면 빠르게 응답할 수 있는 구조이다.
Redis는 Key-Value 형태의 데이터 저장소이며, 단순 문자열 뿐 아니라 다양한 종류의 데이터 구조를 지원한다.
https://architecturenotes.co/redis/
https://brunch.co.kr/@skykamja24/575
https://wildeveloperetrain.tistory.com/21
https://zangzangs.tistory.com/72
https://www.itpanther.com/redis-transactions/