메모리 내 저장소와 데이터베이스 저장소 간의 성능 차이는 얼마나 중요합니까?

StackOverflow https://stackoverflow.com//questions/22000497

문제

나는 신호에 채팅 응용 프로그램을 만들고 있습니다.현재 메시지의 영구 저장을 위해 데이터베이스에 저장하는 기능이 있습니다.사용자 목록을 구현하고 싶고이 기사를 다시 읽고 있습니다:

http://www.asp.net/signalr/overview/signalr-20/hubs-api/mapping-users-to-connections#inmemory

메모리 내 스토리지 간의 차이는 얼마나 중요합니까?1000 명의 사용자와 10,000 명의 사용자가 초당 1 메가 그램(설탕을 많이 먹었습니다)의 정상적인 속도로 서로 메시지를 보내는 것 사이에 두 번째 차이가 더 많을 가능성이 있습니까?그리고 그것은 얼마나 유용합니까?성능에 대한 이전 테스트에 대한 모든 참조는 대단히 감사 할 것입니다.

둘째,나는 이것에 대해 잘못된 방향으로 갈 수 있지만,사용자 목록을 저장하고 여러 채팅방이있는 경우,나는 방마다 별도의 사전이 필요합니다 가정?그리고 만약 그렇다면,사용자가 자신의 방을 생성 할 수 있기를 원하기 때문에 이것이 가능합니까?이 방법으로 메모리 내를 어떻게 달성 할 수 있는지 모르겠습니다.

감사합니다

도움이 되었습니까?

해결책

나는 대답에 대한 단일 링크를 제공하는 것을 싫어하지만 이 대화방은 완전한 기능을 갖추고 있습니다 https://jabbr.net 당신이 걱정하는 모든 것을 해결합니다.

출처: https://github.com/jabbr/jabbr

당신의 주요 관심사에 대해 언급하려면 메모리 대 데시벨:데이터를 유지하거나 응용 프로그램을 확장할 수도 있지만 메모리 내보다 성능이 훨씬 떨어집니다.지금은 훨씬 덜 성능 비록 그것이 당신의 응용 프로그램에 따라 메시지를 보낼 초 정도 걸릴 거 야 의미하지 않는다,나를 오해하지 않습니다...그것은 모두 타협에 관한 것입니다.

1000 대 10,000 명의 사용자에게 데시벨 지향 아키텍처를 적용하는 것은 모두 당신이 그것을 구현하는 방법에 달려 있습니다.예를 들어 스케일 아웃 공급자 레디스는 모든 메모리 내로 실행되지만 간격에 디스크에 지속됩니다.이것은 분명히 매우 빠르지 만"일부"데이터 손실을 허용합니다.

다른 팁

이것은 귀하의 원래 질문과 직접 관련이 없습니다.

나는 당신이 그들을 메모리 내 저장소에 저장할 수 없다고 생각합니다. 문제는 응용 프로그램 풀이 재활용되면 메모리에 저장된 모든 메시지가 사라진다는 것입니다.

앱 풀이 재활용 될 때를 예측할 수 없습니다(모두 재활용 할 특정 시간을 수동으로 설정할 수 있음).그것은 몇 일 또는 몇 시간에 일어날 수 있습니다.

이상적으로,당신은 같은 영구 위치에 저장하려면 데이터베이스.데이터베이스에 저장하는 성능에 대해 걱정하는 경우 다음을 수행할 수 있습니다 비동기 데이터베이스 저장 작업.

이 비교를 확인하십시오:

http://ruturaj.net/redis-memcached-tokyo-tyrant-and-mysql-comparision/

메모리에 있는 레디스의 성능은 다음과 같습니다. 물론,그들의 응용 분야는 매우 다릅니다.그래서 우리는 일반적으로 레디스가 마이스클보다 낫다고 말할 수 없습니다.모든 소프트웨어 프로젝트는 자신의 세계이며 다양한 솔루션을 적용 할 수 있습니다.어떤 상황에서는 플랫폼의 다른 부분(예:젠토 전자 상거래)

메모리 내 솔루션 또는 표준 데이터베이스가 필요한지 평가하는 것은 사용자의 몫입니다.나는 1 삽입/초의 처리량을 쉽게 달성 할 수 있다고 생각하지만 이것은 단지 의견 일뿐입니다.나는 당신이"레디 인식"입니다 제품의 구현을 작성하는 것이 좋습니다:(이러한 레이어가 오픈 소스를 사용할 수 있는지 모르겠지만,당신은 당신의 자신을 해제 할 수 있습니다...)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top