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

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

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

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



답변

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

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

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


답변

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

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

이전 독자의 인용문 :

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

기사에서 인용 :

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

기사가 다루는 사용 사례 :

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

답변

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

    이점

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

답변

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


답변