SQL 데이터베이스 대신 Redis와 같은 키 / 값 저장소를 사용하는 경우는 언제입니까?


166

Redis와 같은 키 / 값 저장소에 대한 훌륭한 내용을 읽었지만 응용 프로그램에서 사용할 때를 파악할 수 없습니다.

웹 기반 애플리케이션을 설계한다고 가정 해보십시오. 프론트 엔드, 백엔드, 데이터베이스 등에 사용할 스택을 알고 있습니다. "오, X, Y 또는 Z 용 Redis도 필요합니다."

node.js 예제와 non-node.js 예제에 감사드립니다.


답변:


102

응용 프로그램에서 사용할 때를 알 수없는 것 같습니다.

유스 케이스도 포함 된 학습서 를 읽으십시오 . redis는 메모리 지향적이기 때문에 세션 저장소, 상태 데이터베이스, 통계, 캐싱 및 고급 데이터 구조 와 같은 자주 업데이트되는 실시간 데이터 에 매우 유용합니다.

그러나 Redis는 고전적인 관계형 데이터베이스를 NoSQL로 대체하지 않습니다. RDBMS 세계의 많은 표준 기능 (데이터 쿼리 속도 저하 등)을 지원하지 않기 때문입니다. 대체는 MongoDB 또는 CouchDB와 같은 문서 데이터베이스이며 redis는 고급 데이터 구조에 대한 속도와 지원이 편리한 특정 기능을 보완하는 데 탁월합니다.


3
연결 한 튜토리얼이 훌륭합니다!
Chris Abrams

5
해당 튜토리얼 사이트 URL을 사용하여 빠른 Google 검색을 수행하여이 사이트를 가장 많이 방문했습니다. slideshare.net/dvirsky/introduction-to-redis-version-2
Paul

66

나는이 기사보다 Redis의 사용 사례를 더 잘 설명하는 것은 없다고 생각합니다 : http://antirez.com/post/take-advantage-of-redis-adding-it-to-your-stack.html

나는 당신이 아하 것입니다 내기 ! 순간 . ;)

이전 독자의 인용문 :

나는 전에 Redis에 대해 읽었고 회사가 어떻게 그것을 사용하고 있는지 들었지만 그 목적을 완전히 이해하지 못했습니다. 이것을 읽은 후에 실제로 Redis를 이해하고 유용하다는 것을 알 수 있습니다. 그것에 대해 너무 많이들은 후에는 비교적 간단한 기사라는 것이 놀랍습니다.

기사에서 인용 :

Redis는 여러 가지면에서 다른 데이터베이스 솔루션과 다릅니다. 지속성을 위해 메모리를 기본 스토리지 지원 및 디스크로 사용하고, 데이터 모델은 매우 독창적이며 단일 스레드 등입니다. 프로덕션 환경에서 Redis를 활용하기 위해 Redis로 전환 할 필요가 없다는 또 다른 큰 차이점이 있습니다. 이전에는 불가능했던 새로운 일을하거나 오래된 문제를 해결하기 위해 사용할 수 있습니다.

기사가 다루는 사용 사례 :

  • 홈페이지의 느린 최신 상품 목록
  • 리더 보드 및 관련 문제
  • 사용자 투표 및 시간 순서
  • 아이템에 대한 구현 만료
  • 물건 계산
  • 주어진 시간에 고유 한 N 개의 아이템
  • 통계, 스팸 방지 또는 기타 상황에 대한 실시간 분석
  • 펍 / 서브
  • 대기열
  • 캐싱

이 기사는 매우 유용합니다. 알고 싶은 내용이 있습니다
Hos Mercury

@ Zenw0lf redis는 여전히 간단한 캐싱에 가장 적합합니까? 귀하의 게시물은 2011 년이므로 귀하가 사용해야 할 것이 있는지 확실하지 않습니다.
Moondra

@ Moondra 예, 프로젝트는 여전히 살아 있으며 제작자는 자주 출시합니다. 여전히 다양한 사용 시나리오를위한 훌륭한 프로젝트입니다!
zenw0lf

@ zenw0lf 좋은 기사이지만 여전히 일부 유스 케이스에서 약간 혼란 스럽습니다. 예를 들어 "최신 항목"사용 사례에서이 경우 Redis를 추가하는 것이 더 좋은 이유는 무엇입니까? 데이터베이스에있는 것은 사용자 ID, 주석 (id) 및 / 또는 타임 스탬프를 갖기 위해 특정 테이블에 추가하고 이것을 직접 사용합니다. 이것이 동일하지 않습니까?
Tony Lin

1
@TonyLin 그것은 메모리에 있기 때문에 빠르며 Redis는 최첨단 데이터 모델을 구현하여 가능한 한 최선을 다할 수 있도록 도와줍니다.
zenw0lf

9
  • 실시간 프로젝트에서 redis를 사용하고 싶습니다. 나는 최근에 mysql에 데이터베이스로 구축 된 하나의 GPS 추적 시스템을 위해 최근에했습니다.

    이점

    1. 추적기가 데이터를 브로드 캐스트 할 때마다 mysql 연결을 열고 저장할 필요가 없습니다. redis에 저장하고 나중에 다른 프로세스를 사용하여 mysql로 ​​마이그레이션 할 수 있습니다. 이것은 다중 추적기에서 mysql 로의 동시 연결을 피합니다.
    2. 모든 GPS 데이터를 게시 할 수 있으며 다른 클라이언트 (javascript / android)는 redis 기반의 메시지 대기열을 사용하여 실시간으로 구독 할 수 있습니다
    3. 실시간 알림을 트리거 할 수 있습니다

3

한 가지 단점은 Redis가 관계형 데이터베이스가 아니라는 것입니다. SQL "JOIN"이 필요하다면 Redis 나 다른 비 관계형 데이터베이스를 사용하고 싶지 않을 것입니다. Redis는 대부분의 관계형 데이터베이스보다 빠릅니다. 키 : 값 쌍 쿼리 만 수행하려는 경우 Redis를 사용하는 것이 좋습니다.


예를 들어, 사용자 세션에 관한 정보를 위해 redis를 사용하는 것이 좋을 것이므로 이름, 이메일, ID 등에 더 빨리 액세스 할 수 있습니까?
Chris Abrams

그렇게 생각합니다. 교토 캐비닛은 더 빠를 것이라고 생각합니다.
EhevuTov
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.