Remote Dictionary Server의 약자로 key-value 구조의 비 관계형 데이터를 저장하고 관리하기 위한 NoSQL의 종류 중 하나이다. 오픈소스 소프트웨어이며 디스크가 아닌 메모리 기반의 데이터 저장소이다.
레디스는 현재 가장 인기 있는 key-value store로서 C언어로 작성되었으며 다양한 개발 언어를 제공한다.
NoSQL 중에서도 Redis가 주목을 받는 이유는 데이터 저장소로 입출력이 가장 빠른 메모리를 채택하고 있고 단순한 구조의 데이터 모델을 사용해서 속도가 빠르기 때문이다.
AWS는 레디스용 Amazone ElastiCache 서비스를 통해 Redis를 지원하며 고객은 원하는 경우에 AWS EC2에서 자체 관리형 레디스를 실행할 수 있다.
자주 변경되지 않는 정보를 읽을 때 사용하도록 한다.
예를 들어 SNS에서 사용자의 게시글에 대한 값은 대부분 변하지 않으며 수정 또한 드물게 일어난다. 일부 사용자들은 많은 팔로워를 가지고 있고 최근 게시물일 수록 더 많이 노출되기 때문에 캐시를 유용하게 이용할 수 있다.
Redis 서버에 데이터를 캐시한다면 데이터가 변경될 때 Redis 캐시만 업데이트하면 되기 때문에 캐시동기화 문제가 해결된다.
하지만 Redis에서 캐시 데이터를 보관할 만큼의 여럭이 없거나(예 : 비용) 매우 낮은 레이턴스를 요구하는 상황이라면 로컬 캐시 사용이 필요할 수있다. 로컬 캐시를 사용할때 캐시동기화를 위해 Redis Pub/Sub을 사용하면 모든 인스턴스에 손쉽게 캐시동기화를 구현할 수 있다.
고성능 서비스를 위해 사용되는 기술로 데이터베이스의 쿼리 결과를 어플리케이션에 직접 저장하기 위해 데이터베이스가 아닌 어플리케이션 서버의 사용가능한 메모리를 이용하는 방법이다.
클라이언트 사이드 캐싱을 사용하면 어플리케이션은 자주 사용되는 쿼리의 응답을 어플리케이션 메모리 내에 직접 저장해서 나중에 데이터베이스에 다시 쿼리하지 않고 응답을 재사용할 수 있도록 한다.