1. Redis란?

- Redis(REmote Dictionary Server)는 인메모리 데이터 구조 저장소이다.
- Key-Value 형태의 방식으로 데이터를 저장한다.
- 데이터를 RAM에 직접 저장하므로 매우 빠른 읽기/쓰기 성능

2. 인메모리 데이터베이스의 필요성

일반적으로 데이터베이스하면, 관계형 데이터베이스가 대표적이다. 관계형 데이터베이스의 주된 목적은 HDD, SSD 같은 파일 시스템에 데이터를 저장함으로써 서비스가 종료되어도 데이터를 안전하게 보관하는 것이다. 파일 시스템에 데이터를 저장하다보니, 데이터를 쓰거나, 읽을 때 속도가 느릴 수밖에 없다. 특정 서비스는 빠른 응답을 요구하기도 하고, 대규모 시스템에 경우 데이터베이스에 부하가 급격히 늘어날 수도 있는데, 인메모리 데이터베이스를 사용하면 데이터베이스를 거치지 않으므로 부하 분산 효과도 누릴 수 있다. 요약하면, 빠른 응답 시간, 실시간 처리, 시스템 안정성 향상 등의 이유로 인메모리 데이터베이스를 사용한다.
3. Redis의 라이센스 - 오픈소스 아님!
Redis는 2024년 3월 20일부터 라이센스 정책을 크게 변경했다.
개발자들은 여전히 무료로 사용 가능하고, AWS, Microsoft 같은 대형 클라우드 업체에 국한된 문제이다.
3 - 1. 주요 제한사항
- 상업적 용도로 제공하거나 관리형 서비스로 제공하는 것이 제한된다.
- 제3자에게 서비스로 제공하는 것이 제한된다.
3 - 2. 변경 이유
AWS나 Microsoft 같은 대형 클라우드 서비스 제공업체들이
Redis를 이용해 수익을 창출하는 상황에 대응하기 위한 방책으로 라이센스를 변경한 것이다.
3 - 3. 대응책
7.4 이전 버전은 계속해서 BSD-3-Clause 라이센스 하에서 사용 가능하다.
이것의 의미는 3 - 1. 주요 제한사항에서 말한 제한사항이 없다는 것이다.
Redis 측에서보안 업데이트와 같은 중요한 결함은 계속 수정 제공을 약속한 바 있다.
한편으로 대다수 Redis 사용자들은 대안을 찾으려고 노력중이다.
4. Redis 는 NoSQL(Not Only SQL)
Redis는 SQL을 사용하지 않는다.
Redis는 String부터, List, Set, Hash 등 다양한 형태의 데이터를 저장한다.
Redis는 다양한 형태의 데이터를 가져오는데 SQL을 사용하지 않는다.
Redis는 NoSQL 데이터베이스이다.
4 - 1. NoSQL의 등장 배경

NoSQL은 관계형 데이터베이스의 단점에서부터 출발했다.
비정형 데이터를 처리하기 어렵고,
확장성과 유연성이 떨어지는 관계형 데이터베이스의 단점을 극복하기 위해,
더 높은 성능을 위해 NoSQL이 등장했다.
5. Redis의 활용 사례
Redis는 위에서 설명한 특성들 덕분에 일시적인 데이터, 변경이 잦은 데이터를 다뤄야 되는 상황에서 많이 활용된다.
- Session Clustering: 여러 애플리케이션 인스턴스에서 같은 세션 정보를 사용할 수 있도록 도와준다.
- Caching: 자주 사용되는 데이터를 저장해두어, 데이터베이스 조회를 줄이고 전반적인 응답속도를 개선한다.
- 리더보드, 방문자 트래킹, 조회수, 좌표 기반 검색 등등등
References
https://peterica.tistory.com/617
https://www.einfochips.com/blog/redis-cache-and-its-use-cases-for-modern-application/
https://redis.io/docs/latest/develop/interact/search-and-query/query-use-cases/
https://brunch.co.kr/@skykamja24/575
https://m.boannews.com/html/detail.html?idx=134444
1. Redis란?

- Redis(REmote Dictionary Server)는 인메모리 데이터 구조 저장소이다.
- Key-Value 형태의 방식으로 데이터를 저장한다.
- 데이터를 RAM에 직접 저장하므로 매우 빠른 읽기/쓰기 성능

2. 인메모리 데이터베이스의 필요성

일반적으로 데이터베이스하면, 관계형 데이터베이스가 대표적이다. 관계형 데이터베이스의 주된 목적은 HDD, SSD 같은 파일 시스템에 데이터를 저장함으로써 서비스가 종료되어도 데이터를 안전하게 보관하는 것이다. 파일 시스템에 데이터를 저장하다보니, 데이터를 쓰거나, 읽을 때 속도가 느릴 수밖에 없다. 특정 서비스는 빠른 응답을 요구하기도 하고, 대규모 시스템에 경우 데이터베이스에 부하가 급격히 늘어날 수도 있는데, 인메모리 데이터베이스를 사용하면 데이터베이스를 거치지 않으므로 부하 분산 효과도 누릴 수 있다. 요약하면, 빠른 응답 시간, 실시간 처리, 시스템 안정성 향상 등의 이유로 인메모리 데이터베이스를 사용한다.
3. Redis의 라이센스 - 오픈소스 아님!
Redis는 2024년 3월 20일부터 라이센스 정책을 크게 변경했다.
개발자들은 여전히 무료로 사용 가능하고, AWS, Microsoft 같은 대형 클라우드 업체에 국한된 문제이다.
3 - 1. 주요 제한사항
- 상업적 용도로 제공하거나 관리형 서비스로 제공하는 것이 제한된다.
- 제3자에게 서비스로 제공하는 것이 제한된다.
3 - 2. 변경 이유
AWS나 Microsoft 같은 대형 클라우드 서비스 제공업체들이
Redis를 이용해 수익을 창출하는 상황에 대응하기 위한 방책으로 라이센스를 변경한 것이다.
3 - 3. 대응책
7.4 이전 버전은 계속해서 BSD-3-Clause 라이센스 하에서 사용 가능하다.
이것의 의미는 3 - 1. 주요 제한사항에서 말한 제한사항이 없다는 것이다.
Redis 측에서보안 업데이트와 같은 중요한 결함은 계속 수정 제공을 약속한 바 있다.
한편으로 대다수 Redis 사용자들은 대안을 찾으려고 노력중이다.
4. Redis 는 NoSQL(Not Only SQL)
Redis는 SQL을 사용하지 않는다.
Redis는 String부터, List, Set, Hash 등 다양한 형태의 데이터를 저장한다.
Redis는 다양한 형태의 데이터를 가져오는데 SQL을 사용하지 않는다.
Redis는 NoSQL 데이터베이스이다.
4 - 1. NoSQL의 등장 배경

NoSQL은 관계형 데이터베이스의 단점에서부터 출발했다.
비정형 데이터를 처리하기 어렵고,
확장성과 유연성이 떨어지는 관계형 데이터베이스의 단점을 극복하기 위해,
더 높은 성능을 위해 NoSQL이 등장했다.
5. Redis의 활용 사례
Redis는 위에서 설명한 특성들 덕분에 일시적인 데이터, 변경이 잦은 데이터를 다뤄야 되는 상황에서 많이 활용된다.
- Session Clustering: 여러 애플리케이션 인스턴스에서 같은 세션 정보를 사용할 수 있도록 도와준다.
- Caching: 자주 사용되는 데이터를 저장해두어, 데이터베이스 조회를 줄이고 전반적인 응답속도를 개선한다.
- 리더보드, 방문자 트래킹, 조회수, 좌표 기반 검색 등등등
References
https://peterica.tistory.com/617
https://www.einfochips.com/blog/redis-cache-and-its-use-cases-for-modern-application/
https://redis.io/docs/latest/develop/interact/search-and-query/query-use-cases/
https://brunch.co.kr/@skykamja24/575
https://m.boannews.com/html/detail.html?idx=134444