복붙노트

[REDIS] 레디 스 대 memcached를?

REDIS

레디 스 대 memcached를?

우리는 캐싱 레디 스 서버와 루비 웹 응용 프로그램을 사용하고 있습니다. 대신 memcached를 테스트 할 점은 있습니까?

무엇이 우리에게 더 나은 성능을 줄 것이다? 레디 스 및 Memcached가 사이의 모든 장점 또는 단점?

포인트 고려해야 할 :

해결법

  1. ==============================

    1.2017 년 6월 3일 업데이트

    2017 년 6월 3일 업데이트

    레디 스 더 인기있는, 더 강력하고, 더 나은 memcached를보다 지원합니다. Memcached가 단지 레디 스이 할 수있는 것들의 작은 부분을 할 수 있습니다. 자신의 기능이 겹치는 곳 레디 스도 좋습니다.

    새로운 것을 위해, 레디 스를 사용합니다.

    두 도구는 빠르고, 캐시로서 유용하다 - 메모리 데이터 저장 강력하다. 캐싱 데이터베이스 결과, HTML 조각, 또는 아무것도하여 응용 프로그램까지 모두 캔 도움이 속도는 다른 그 생성 비용이 많이들 수 있습니다.

    같은 일에 사용하는 경우, 여기에 그들이 "고려해야 할 점"원래의 질문의를 사용하여 비교하는 방법입니다 :

    Memcached가 간단한 휘발성 캐시 서버입니다. 그것은 당신이 값이 1메가바이트에 문자열 최대 인으로 제한됩니다 키 / 값 쌍을 저장할 수 있습니다.

    그것은이 잘하지만 그게이하는 전부입니다. 당신은 종종 사용할 수있는 네트워크 또는 메모리 대역폭을 포화, 매우 높은 속도로 자신의 키를 사용하여 해당 값에 액세스 할 수 있습니다.

    당신이 당신의 데이터를 memcached를 다시 시작하면 사라입니다. 이것은 캐시 괜찮습니다. 당신은 중요한이 아무것도 저장하지 않아야합니다.

    당신은 높은 성능과 고 가용성이 필요한 경우 가능한 타사 도구, 제품 및 서비스가 있습니다.

    레디 스는 memcached를 캔과 같은 작업을 할 수 있고, 더 잘 할 수 있습니다.

    레디 스뿐만 아니라 캐시 역할을 할 수 있습니다. 너무 키 / 값 쌍을 저장할 수 있습니다. 레디 스에서 그들은 심지어 5백12메가바이트까지 할 수있다.

    당신은 지속성을 해제 할 수 있고 행복도 다시 시작할 때 데이터를 잃게됩니다. 당신이 다시 시작 생존을 위해 캐시를 원한다면 그것은 당신이뿐만 아니라 그 작업을 수행 할 수 있습니다. 사실, 그 기본입니다.

    그것은 슈퍼 빠른 너무 자주 네트워크 나 메모리 대역폭에 의해 제한입니다.

    레디 스의 인스턴스 / memcached를 당신의 작업 부하에 충분한 성능이 아닌 경우, 확실한 선택입니다 레디 스. 레디 스 클러스터 지원을 포함하고 "상자에"바로 고 가용성 도구 (레디 스 - 센티넬)와 함께 제공됩니다. 지난 몇 년 동안도 제 3 자 공구의 명확한 선두 주자로 부상했다 레디 스. 레디 스 연구소, 아마존, 그리고 다른 사람과 같은 기업은 많은 유용한 레디 스 도구와 서비스를 제공합니다. 레디 스 주변의 생태계가 훨씬 더 크다. 대규모 배포의 수는 지금 memcached를보다 가능성이 더 크다.

    레디 스 더 캐시보다. 이는 메모리 내 데이터 구조 서버이다. 당신은 레디 스이 memcached를 같은 간단한 키 / 값 캐시 인 이상으로 할 수있는 일에 대한 간단한 개요 이하를 찾을 것입니다. 레디 스 '기능의 대부분은 할 수 없어 memcached를 것들입니다.

    레디 스 더 memcached를보다 설명되어 있습니다. 이 주관적 일 수 있지만, 항상 더 많은 사실로 보인다.

    redis.io 환상적인 쉽게 탐색 자원이다. 그것은 당신이 브라우저에서 레디 스를 시도하고 심지어 당신이 문서에있는 각 명령을 대화식 예를 살고 제공 할 수 있습니다.

    memcached를로 레디 스 이제 배 많은 같은 유래 결과가 있습니다. 2 배 많은 Google 결과로. 더 많은 언어에 더 쉽게 접근 할 예. 더 적극적인 개발. 더 많은 활성 클라이언트 개발. 이러한 측정은 매우 개별적으로 의미하지 않을 수도 있지만, 레디 스에 대한 지원 및 문서가 크고 훨씬 더 최신 상태인지 조합에서 그들은 명확한 그림을 그릴.

    기본적으로 스냅 샷 생성이라는 메커니즘을 사용하여 디스크에이 지속 데이터가 레디 스. 당신이 충분한 RAM을 사용할 수있는 경우는 거의 성능 저하없이 디스크에 모든 데이터를 쓸 수 있습니다. 거의 무료입니다!

    스냅 샷 모드에서 갑자기 충돌이 손실 된 데이터의 작은 금액을 초래할 수있는 기회가있다. 당신이 절대적으로 확신 데이터가 분실되지해야 할 경우, 걱정하지 마세요, 너무 AOF (추가 만 파일) 모드가 허리를 가지고 레디 스. 기록 된 바와 같이,이 지속성 모드 데이터는 디스크에 동기화 될 수있다. 이 쓸 수 있지만 빠른 디스크에 최대 쓰기 처리량을 줄일 수 있지만, 여전히 매우 빠르게해야합니다.

    이 필요한 경우 미세 조정 지속성 많은 구성 옵션이 있지만 기본적으로는 매우 합리적이다. 이 옵션은 데이터를 저장하기위한 안전하고 중복 장소로 설정 레디 스에 쉽게 그것을합니다. 그것은 진짜 데이터베이스입니다.

    Memcached가 문자열로 한정되어 있지만, 레디 스는 다양한 데이터 유형을 제공 할 수있는 데이터 구조의 서버이다. 그것은 또한 당신이 그 데이터 유형을 최대한 활용하는 데 필요한 명령을 제공합니다.

    크기 5백12메가바이트까지 할 수있는 간단한 텍스트 또는 이진 값. memcached를 문자열 1메가바이트로 제한되어 있지만이 유일한 데이터 유형 레디 스 및 memcached를 공유합니다.

    레디 스 포인트의 증가 / 감소 지원, 범위 쿼리 및 다중 키 조작을, 비트 연산, 비트 수준의 조작에 대한 명령을 제공하는 부동하여이 데이터 유형을 활용하기위한 더 많은 도구를 제공합니다. Memcached가 그 중 하나를 지원하지 않습니다.

    문자열은 memcached를 혼자이 데이터 유형에 매우 유용 이유입니다, 사용 모든 종류의 경우에 유용합니다.

    해시 정렬 키 값 저장소에서 키 값 저장소 등이다. 그들은 문자열 필드 및 문자열 값 사이에 매핑합니다. 현장> 값은 키 -보다 효율적인 약간 더 많은 공간> 값이 일반 문자열을 사용하여지도를 해시를하고 있습니다 사용하여 매핑합니다.

    당신이 논리적으로 그룹 많은 키에 할 때 해시는 네임 스페이스로 유용하다, 또는. 해시를 사용하면, 효율적으로 모든 구성원을 잡아 함께 모든 구성원 만료, 당신은 필요에 그룹화하는 것이 몇 가지 키 / 값 쌍을 가지고있는 사용 사례에 대해 등을 함께 우수함, 모든 멤버를 삭제할 수 있습니다.

    해시의 일례의 사용은 애플리케이션간에 사용자 프로파일을 저장하기위한 것이다. 키와 사용자 ID로 저장된 레디 스 해시는 하나의 키에 저장을 유지하면서 필요에 따라 사용자에 대한 데이터의 비트 수로 저장할 수 있습니다. 문자열로 프로필을 해시를 사용하는 대신에 직렬화의 장점은 당신이 오래된 직렬화 경우 발생할 수있는 (다른 사람에 의해 변경 사항을 무시 하나의 응용 프로그램에 대해 걱정할 필요없이 다른 응용 프로그램이 사용자 프로파일 내에서 다른 필드를 읽기 / 쓰기 할 수 있다는 것입니다 데이터).

    레디 스리스트는 문자열의 컬렉션을 정렬됩니다. 그들은 삽입, 읽기, 또는 상단 또는 하단에서 값을 제거하기 위해 최적화되어 있습니다 : 목록의 (일명 왼쪽 또는 오른쪽).

    레디 스는 / 범위 쿼리 등을 수행, 목록, 잘라 내기 목록 사이 팝 / 항목, 푸시 팝업 푸시 명령을, 목록을 활용 포함한 많은 명령을 제공합니다

    목록 훌륭한 내구성, 원자, 대기열을 확인하십시오. 작업 큐, 로그 버퍼, 그리고 다른 많은 사용 사례에 대한 이러한 작업 좋아요.

    세트 고유 값의 정렬되지 않은 모음입니다. 그들은 당신이 신속하게 값이 세트에있는 경우 신속하게 확인 / 제거 값을 추가하고, 다른 세트와 중복 측정 할 수 있도록 최적화되어 있습니다.

    다음은 액세스 제어 목록, 순 방문자 추적기, 그리고 많은 다른 것들과 같은 것들에 대한 중대하다. 대부분의 프로그래밍 언어는 비슷한 (일반적으로 세트라고합니다)가 있습니다. 이것은 단지 분산, 그런 식이다.

    레디 스는 세트를 관리 할 수있는 몇 가지 명령을 제공합니다. 세트를 추가, 제거 및 확인과 같은 명백한 사람은 존재한다. 그래서 / 터지는 다른 세트와 노동 조합 및 교차로를 수행하기위한 임의의 항목 및 명령을 읽기와 같은 덜 분명한 명령입니다.

    정렬 된 세트는 고유 한 값의 모음입니다. 이 사람은, 이름에서 알 수 있듯이, 정렬됩니다. 그들은 다음 사전 식, 점수에 의해 정렬됩니다.

    이 데이터 유형은 점수에 의해 빠른 조회를 위해 최적화되어 있습니다. 사이의 값의 최고, 최저 또는 범위를 얻는 것은 매우 빠릅니다.

    당신이 그들의 높은 점수와 함께 소트 세트에 사용자를 추가하는 경우, 당신은 자신에게 완벽한 리더 보드가 있습니다. 새로운 높은 점수가 들어 오면, 그들의 높은 점수를 다시 설정에 추가하고 다시 주문됩니다 리더 보드를. 또한 마지막에 방문한 사용자와있는 응용 프로그램에서 활동을 추적하는 데에 아주 좋아.

    동일한 점수 값을 저장하는 것은 그들을 (알파벳 순) 생각 사전 식 정렬되도록합니다. 이것은 자동 완성 기능 같은 것들에 유용 할 수 있습니다.

    정렬 된 집합 명령의 대부분은 때때로 추가 점수를 매개 변수로, 세트의 명령과 유사하다. 또한 포함 된 점수를 관리하고 점수에 의해 쿼리에 대한 명령입니다.

    레디 스 저장, 검색, 지리 데이터를 측정하기위한 여러 가지의 명령을 갖는다. 이 반경 질의 및 측정 포인트 사이의 거리를 포함한다.

    이 진정으로 별도의 데이터 형식이되지 않도록 기술적으로 레디 스 지리적 데이터는 분류 세트에 저장됩니다. 그것은 더 정렬 된 세트의 상단에 연장이다.

    지리와 마찬가지로,이 완전히 별도의 데이터 유형이 아니다. 다음은이 비트 맵 또는 hyperloglog 중 하나 인 것처럼 취급 문자열 데이터로 허용 명령입니다.

    비트 맵 내가 문자열에서 참조 비트 수준의 운영자가 무엇인지입니다. R / 장소 :이 데이터 유형은 레딧의 최근 공동 예술 프로젝트의 기본 빌딩 블록이다.

    HyperLogLog는 정확성을 충격으로 거의 무제한 고유 한 값을 계산하기 위해 일정을 공간의 매우 적은 양을 사용할 수 있습니다. 만 사용하면 ~ 16킬로바이트 당신은 효율적으로 그 숫자가 수백만에있는 경우에도 사이트의 순 방문자 수를 셀 수 있습니다.

    레디 스의 명령은 당신이 레디 스에 값을 쓰기 빨리으로 값이 레디 스에 연결된 모든 클라이언트에 표시되어있는 것을 할 수 있습니다 의미 원자이다. 그 값은 전파하기위한 대기가 없습니다. 기술적으로 memcached를뿐만 아니라 원자이지만, memcached를 넘어 모든 기능을 추가 레디 스와 가치에 주목하고 모든 추가 데이터의 종류와 특징은 또한 원자 것을 다소 인상적이다.

    관계형 데이터베이스의 트랜잭션과 같은 꽤 동일하지만, 또한 레디 스 거래를 가지 사용 "낙관적 잠금"(WATCH / MULTI / EXEC).

    레디 스는 '파이프 라인'이라는 기능을 제공합니다. 당신이 많은 레디 스 명령이있는 경우 당신은 당신의-모든 번 대신 한 번에 하나씩을 레디 스 그들을 보낼 파이프 라이닝을 사용하여 실행합니다.

    당신도 레디 스 또는 memcached를에 명령을 실행할 때 일반적으로 각 명령은 별도의 요청 / 응답 사이클이다. 파이프 라인으로, 레디 스 여러 명령을 버퍼링 할 수 있습니다 단일 응답에서 모든 명령에 대한 모든 응답에 응답 한 번에 모두 실행합니다.

    이것은 당신이 대량 가져 오기 또는 명령을 많이 포함하는 다른 작업에 더 큰 처리량을 달성 할 수 있습니다.

    레디 스는 레디 스가 고속 메시지 방송의 역할을 할 수 있도록, 술집 / 하위 기능 전용 명령이 있습니다. 이것은 하나의 클라이언트가 채널에 연결된 많은 클라이언트에 메시지를 게시 할 수 있습니다.

    레디 스는 물론 거의 모든 도구로 펍 / 하위 않습니다. RabbitMQ 같은 전용 메시지 브로커가 특정 지역에서 장점이있을 수 있지만, 사실은 같은 서버는 또한 당신에게 영구적 인 내구성 큐와 다른 데이터 구조 당신의 술집 / 하위 워크로드 가능성 필요성을 줄 수있는, 레디 스 수시로 제일과 간단한 도구로 증명한다 작업에 대한.

    당신은 종류의 레디 스의 자신의 SQL 또는 저장 프로 시저와 같은 루아 스크립트 생각할 수 있습니다. 그것은 모두 더 적은 것보다, 그러나 비유는 대부분 작동합니다.

    어쩌면 당신은 당신이 레디 스 수행 할 복잡한 계산이있다. 어쩌면 당신은 당신의 거래 롤 뒤로하고 필요로하는 보장 원자 적으로 발생하는 복잡한 과정의 모든 단계를 가질 여유가 없다. 이러한 문제와 더 많은 루아 스크립트로 해결할 수 있습니다.

    전체 스크립트는 자주 낙관적 잠금 거래 덤비는 피할 수있는 루아 스크립트로 로직을 넣을 수 그렇다면, 원자 적으로 실행됩니다.

    위에서 언급 한 바와 같이, 클러스터링에 대한 지원 내장 포함 레디 스 자체 고 가용성 도구라는 레디 스-감시와 함께 제공됩니다.

    주저없이 나는 레디 스를 통해 이미 memcached를 사용하지 않는 새로운 프로젝트 또는 기존 프로젝트에 대한 memcached를 추천 할 것입니다.

    memcached를 같이 내가하지처럼 위의 소리가 있습니다. 반대로 : 그것은 강력하고, 간단하고, 안정적이고, 성숙, 그리고 강화 된 도구입니다. 조금 더 빨리 레디 스보다 더의 일부 사용 사례도있다. 나는 memcached를 사랑 해요. 난 그냥 미래의 개발을위한 많은 의미가 있다고 생각하지 않습니다.

    레디 스는 모든 것을 memcached를 종종 더 잘하지 않습니다. memcached를위한 모든 성능 이점은 사소한 및 워크로드 다릅니다. 단순히 memcached를 할 수 없습니다 레디 스가 할 수있는 레디 스가 빨라집니다하는 작업, 그리고 더 많은 워크로드도 있습니다. 작은 성능 차이는 기능의 거대한 걸프의 얼굴과 두 도구들이 아주 잘 당신이 이제까지 확장에 대해 걱정할 필요가 있습니다 인프라의 마지막 조각이 될 수 있습니다 효율적으로 너무 빨리하고 있다는 사실에 작은을 보인다.

    memcached를 이미 캐시로 사용하고 있습니다 : memcached를 더 의미가 하나 개의 시나리오에만 있습니다. 이미 memcached를 함께 캐싱하는 경우 그것은 당신의 요구 사항을 충족하는 경우 그 다음, 그것을 계속 사용. 그것은 가능성이 레디 스에 이동하는 노력이 가치가되지 않습니다 당신이 사용하려는 경우 가치가 당신의 시간으로 충분한 이익을 제공하지 않을 수도 있습니다 그것을 캐싱을 위해 단지 레디 스. 사용자의 요구를 충족시키지 memcached를 경우에, 당신은 아마 레디 스를 이동해야합니다. 이 memcached를하거나 추가 기능을 필요 이상으로 당신이 규모해야하는지 여부를 사실이다.

  2. ==============================

    2.사용 레디 스 경우

    사용 레디 스 경우

    경우 memcached를 사용하십시오

    내 경험에서 나는 Memcached가보다 레디 스에 훨씬 더 안정성을 했어

  3. ==============================

    3.Memcached가가 멀티 스레드와 빠른됩니다.

    Memcached가가 멀티 스레드와 빠른됩니다.

    레디 스는 기능을 많이 가지고 있으며, 매우 빠른이지만,이 이벤트 루프에 기반으로 완전히 하나 개의 코어로 제한했다.

    우리는 모두를 사용합니다. Memcached가 주로 데이터베이스에 읽기 부하를 줄일 수, 객체를 캐시하는 데 사용됩니다. 레디 스 시계열 데이터를 롤링 편리 분류 세트 같은 것들에 사용됩니다.

  4. ==============================

    4.내가 별도의 답변으로 넣어 이렇게하면, 너무 오래 이미 허용 대답에 주석으로 게시하는 것입니다

    내가 별도의 답변으로 넣어 이렇게하면, 너무 오래 이미 허용 대답에 주석으로 게시하는 것입니다

    또한 고려해야 할 것은 당신이 당신의 캐시 인스턴스에 하드 상위 메모리 제한이 기대 여부입니다.

    레디 스 기능과 캐싱의 톤을 가진되는 NoSQL 데이터베이스가 사용할 수 있습니다 하나 개의 옵션입니다 때문에,이 그것을 필요로 메모리를 할당 - 더 당신이 그것을 넣어 오브젝트, 더 많은 메모리가 사용합니다. maxmemory 옵션은 엄격하게하지 않는 상위 메모리 제한 사용을 적용합니다. 당신은 캐시 작업으로, 키는 퇴거 및 만료; 기회는 내부 메모리 조각화가 발생 귀하의 키가 모두 같은 크기가 아니다.

    기본 메모리 컴팩트하고 빠른 모두가 될 수 있도록 최선을 시도 용도 jemalloc 메모리 할당을, 레디 스하지만, 범용 메모리 할당이며 높은 비율로 할당 및 객체 퍼지 발생하는 많은 따라갈 수 없습니다함으로써. 이 때문에 일부 부하 패턴 레디 스 과정에 분명히 때문에 내부 분열의 메모리가 누수 될 수 있습니다. 당신이 7 기가 RAM을 가진 서버가 있고 비 영구적 인 LRU 캐시로 레디 스를 사용하려는 경우 예를 들어, 결국 총 RAM 제한을 타격, 더 많은 메모리를 사용하는 것이 시간이 지남에 5GB에 maxmemory 세트가 레디 스 프로세스를 찾을 수 있습니다 메모리 부족 킬러를 방해 할 때까지.

    memcached와는 완전히 다른 방식으로 메모리를 관리 같은 시나리오에 더 적합은, 위에서 설명한 것입니다. 그것은 이제까지해야합니다 모든 것을 - - 할당에게 메모리를 하나 개의 큰 덩어리를 memcached를하고 자신의 구현 슬랩 할당을 사용하여 자체적으로이 메모리를 관리합니다. 실제로 당 슬래브 LRU 알고리즘을 사용 더욱이, memcached를 시도 하드 LRU의 퇴거가 고려되는 오브젝트의 크기가 완료되면, 내부 분열을 낮게 유지합니다.

    그렇게 말한다면, memcached를 여전히 메모리 사용량이 시행 및 / 또는 예측 가능해야하는 환경에서 강력한 위치를 가지고있다. 우리는 드롭 인 (drop-in) 10-15k 영업 이익 / S의 워크로드 비 영구적 LRU 기반 memcached를 대체하는 최신 안정의 레디 스 (2.8.19)를 사용하는 것을 시도했다, 그것은 메모리를 많이 유출; 같은 워크로드는 아마존의 ElastiCache 하루 또는 때문에 같은 이유 때문에 인스턴스를 레디 스 충돌했다.

  5. ==============================

    5.Memcached가 간단한 키 / 값 저장되고 잘 인 키 => STRING 하에서 좋다. 이 세션 저장을위한 정말 좋은 수 있습니다.

    Memcached가 간단한 키 / 값 저장되고 잘 인 키 => STRING 하에서 좋다. 이 세션 저장을위한 정말 좋은 수 있습니다.

    레디 스 키 => SOME_OBJECT 일을 잘합니다.

    정말 당신이 거기에 넣어 될 예정에 따라 달라집니다. 나의 이해는 성능면에서 그들은 꽤도 있다는 것입니다.

    당신은 어떤 친절 보내기 그들에게 내 방법을 찾아야 할 경우에도 행운, 객관적인 벤치 마크를 발견.

  6. ==============================

    6.당신이 천박 쓰기 스타일을 신경 쓰지 않는 경우, 레디 스는 Systoilet 블로그에 Memcached가 대 가치는 유용성의 관점에서 읽기,하지만 성능에 어떤 결론을 도출하기 전에 의견 등 뒤에 &를 반드시 읽어보십시오; 거기에 몇 가지 방법 론적 문제 (바쁜 루프 테스트를 싱글 스레드), 그리고 문서뿐만 아니라 작성 이후 레디 스 몇 가지 개선했다.

    당신이 천박 쓰기 스타일을 신경 쓰지 않는 경우, 레디 스는 Systoilet 블로그에 Memcached가 대 가치는 유용성의 관점에서 읽기,하지만 성능에 어떤 결론을 도출하기 전에 의견 등 뒤에 &를 반드시 읽어보십시오; 거기에 몇 가지 방법 론적 문제 (바쁜 루프 테스트를 싱글 스레드), 그리고 문서뿐만 아니라 작성 이후 레디 스 몇 가지 개선했다.

    그리고 어떤 벤치 마크 링크는 너무도 Dormondo의 라이브 저널과 Antirez 웹 로그에서 일부 충돌 벤치 마크를 확인, 물건을 조금 혼란없이 완료됩니다.

    편집 - Antirez가 지적한대로 Systoilet 분석 오히려 잘못 생각된다. 심지어 단일 스레딩 부족을 넘어, 그 벤치 마크에서 성능 차이의 대부분은 오히려 서버 처리량보다 클라이언트 라이브러리에 기인 할 수있다. Antirez 웹 로그에서의 벤치 마크는 훨씬 더 사과 - 투 - 사과 (같은 입) 비교를 제시 실제로 않습니다.

  7. ==============================

    7.정확히 내가 사용하고 어디는 모두 memcached를하고 난에 근무하는 캐싱 프록시에서 함께 레디 스 사용 할 수있는 기회를 가지고, 내가 당신을 공유 할 수 같은 뒤에 무엇 때문에 ....

    정확히 내가 사용하고 어디는 모두 memcached를하고 난에 근무하는 캐싱 프록시에서 함께 레디 스 사용 할 수있는 기회를 가지고, 내가 당신을 공유 할 수 같은 뒤에 무엇 때문에 ....

    레디 스>

    1) 클러스터를 통해 캐시의 콘텐츠를 인덱싱하는 데 사용됩니다. 내가 레디 스 클러스터에 걸쳐에서 5 억 이상의 키가 매우 적은와 안정 응답 시간을 레디 스.

    비슷한 무언가가 어디에 적 응용 프로그램에서 2) 기본적으로, 자사의 키 / 값 저장소는, 그래서, 하나는 많이 귀찮게와 레디 스를 사용할 수 있습니다.

    3) 레디 스 지속성, 장애 복구 및 백업 (AOF)는 쉽게 작업을 할 것입니다.

    Memcache를>

    1) 예, 캐시로서 사용될 수있는 최적화 된 메모리. 나는 덜 1메가바이트보다 크기가로 (50 안타 / 초에) 매우 자주 액세스하기 캐시의 컨텐츠를 저장하기 위해 사용했다.

    2) 나는 memcached를 나의 하나의 콘텐츠 크기였다 너무> 1메가바이트에 대한 GB 16에서 2기가바이트에만 할당.

    함유량이 한계 근처 성장함 3), 때때로 난 스탯 (되지 레디 스의 경우)으로 높은 응답 시간을 관찰 하였다.

    당신이 전반적인 경험을 요구하는 경우는 쉽게 구성 할 수 있습니다로 레디 스는 안정된 강력한 기능을 훨씬 유연하고 많은 녹색이다.

    또한,이 링크에서 사용할 수있는 벤치마킹 결과가, 아래, 같은에서 몇 higlight 있습니다

    도움이 되었기를 바랍니다!!

  8. ==============================

    8.또 다른 보너스는 레디 스는 일반적으로 영구적 인 데이터 저장소로 사용되는 동안은 그냥 최대에 도달하면 memcached를 일명 최소 최근에 사용한 항목을 축출처럼 작동하도록 구성 할 수 있지만이, memcache에가 캐싱 시나리오에서 행동 할 것입니다 방법을 매우 명확하게 할 수 있다는 것입니다 생산 능력.

    또 다른 보너스는 레디 스는 일반적으로 영구적 인 데이터 저장소로 사용되는 동안은 그냥 최대에 도달하면 memcached를 일명 최소 최근에 사용한 항목을 축출처럼 작동하도록 구성 할 수 있지만이, memcache에가 캐싱 시나리오에서 행동 할 것입니다 방법을 매우 명확하게 할 수 있다는 것입니다 생산 능력.

    내가 사용에 작업 한 일부 응용 프로그램은 모두 단지 우리가 행동하는 데이터를하려는 어떻게 취소 할 - 물건을 memcache에, 우리는 그렇지가있는 경우 처리하는 코드 쓰기 - 레디 스에서 물건을, 우리는 거기에 의존 .

    레디 스 그 이외에 일반적으로보다 다양한 기능 및 따라서 유연되는 대부분의 사용 사례 우수한 것으로 간주된다.

  9. ==============================

    9.테스트. 몇 가지 간단한 벤치 마크를 실행합니다. 내가 주로 memcached를 새로운 아이 레디 스 간주 사용하기 때문에 오랜 동안 나는 나 자신에게 오래된 학교 코뿔소를 생각하면서.

    테스트. 몇 가지 간단한 벤치 마크를 실행합니다. 내가 주로 memcached를 새로운 아이 레디 스 간주 사용하기 때문에 오랜 동안 나는 나 자신에게 오래된 학교 코뿔소를 생각하면서.

    나의 현재 회사와 레디 스 메인 캐시로 사용되었다. 나는 몇 가지 성능 통계에 파고 간단하게 테스트를 시작했을 때, 레디 스는 성능면에서, 비교 또는 최소한의 느린 MySQL의 이상이었다.

    memcached를, 단순하지만, 완전히 물 밖으로 레디 스를 불었다. 그것은 훨씬 더 확장 :

    또한, memcached를 퇴거 정책은 내보기에, 훨씬 더 캐시가 처리 할 수있는 것보다 더 많은 데이터를 처리하는 동안 전반적으로보다 안정적인 평균 응답 시간의 결과로 구현됩니다.

    일부는 레디 스, 우리의 경우, 수행 매우 가난하게 밝혀 벤치마킹. 내가 믿는 이것은 많은 변수와 관련이있다 :

    개인적으로, 나는 레디 스 작성자는 동시성 및 멀티 스레딩에있는 뷰를 공유하지 않습니다.

  10. ==============================

    10.우리가 memcached를 그냥 캐시 동안 레디 스가 (캐시 + 데이터 구조)의 조합이라고 말한다면 그것은 잘못되지 않을 것이다.

    우리가 memcached를 그냥 캐시 동안 레디 스가 (캐시 + 데이터 구조)의 조합이라고 말한다면 그것은 잘못되지 않을 것이다.

  11. ==============================

    11.여기에 지적되지 않은 하나의 주요 차이점은 Memcache를가 레디 스 기본적으로하지 않지만, 항상 상위 메모리 제한이 있습니다 (그러나에 구성 할 수 있습니다)이다. 당신은 항상 같은 시간의 일정 금액에 대한 키 / 값을 저장 (때문에 메모리 부족을 퇴거하지 않음)하는 것입니다 경우에 당신은 레디 스에 가고 싶어. 물론, 당신은 또한 메모리 부족 문제를 위험 ...

    여기에 지적되지 않은 하나의 주요 차이점은 Memcache를가 레디 스 기본적으로하지 않지만, 항상 상위 메모리 제한이 있습니다 (그러나에 구성 할 수 있습니다)이다. 당신은 항상 같은 시간의 일정 금액에 대한 키 / 값을 저장 (때문에 메모리 부족을 퇴거하지 않음)하는 것입니다 경우에 당신은 레디 스에 가고 싶어. 물론, 당신은 또한 메모리 부족 문제를 위험 ...

  12. ==============================

    12.아주 간단한 테스트 설정 및 레디 스-2.2.2 및 memcached를 상대로 100,000 고유 키와 값을 얻을 수 있습니다. 모두 리눅스 VM (CentOS는) (아래 붙여 넣기) 내 클라이언트 코드를 실행하는 Windows 바탕 화면에서 실행됩니다.

    아주 간단한 테스트 설정 및 레디 스-2.2.2 및 memcached를 상대로 100,000 고유 키와 값을 얻을 수 있습니다. 모두 리눅스 VM (CentOS는) (아래 붙여 넣기) 내 클라이언트 코드를 실행하는 Windows 바탕 화면에서 실행됩니다.

    레디 스

    memcached를

    Jedis jed = new Jedis("localhost", 6379);
    int count = 100000;
    long startTime = System.currentTimeMillis();
    for (int i=0; i<count; i++) {
      jed.set("u112-"+i, "v51"+i);
    }
    long endTime = System.currentTimeMillis();
    System.out.println("Time taken to store "+ count + " values is ="+(endTime-startTime)+"ms");
    
    startTime = System.currentTimeMillis();
    for (int i=0; i<count; i++) {
      client.get("u112-"+i);
    }
    endTime = System.currentTimeMillis();
    System.out.println("Time taken to retrieve "+ count + " values is ="+(endTime-startTime)+"ms");
    
  13. ==============================

    13.가장 큰 남아있는 이유는 전문성이다.

    가장 큰 남아있는 이유는 전문성이다.

    레디 스 다른 많은 것 그 개발자가 같은 인스턴스에 그 다른 기능 세트를 많이 사용하여 시작할 수 있습니다 중 하나 부작용을 할 수 있습니다. 당신이 LRU 아닙니다 측면 하드 데이터 저장 따라 캐시 레디 스의 LRU 기능을 사용하는 경우는 메모리가 부족 전적으로 가능하다.

    당신이 특정 시나리오를 피하기 위해 단지 LRU 인스턴스로 사용되는 전용 레디 스 인스턴스 설정에가는 경우 다음 사용하는 어떤 강력한 이유가 거기에 정말 아니다 레디 스를 통해 Memcached가.

    당신이 신뢰할 수있는 필요한 경우 LRU 캐시를 "내려갑니다 없다"... 그것은 불가능 이후 그에게 위험을 알릴 수 있도록 그것을 만들려고 노력에서 설계 및 구체화 기능을 방지 개발자가 메모리를 소모하는 법안을 맞는 memcached를. 문제의 간단한 분리.

  14. ==============================

    14.레디 스가 (TCP 호출을) 네트워킹 포함 단지도 때문에, 성능에 관심이 있다면 Memcached가 빨리 될 것입니다. 또한 내부적으로 Memcache의 속도가 빨라집니다.

    레디 스가 (TCP 호출을) 네트워킹 포함 단지도 때문에, 성능에 관심이 있다면 Memcached가 빨리 될 것입니다. 또한 내부적으로 Memcache의 속도가 빨라집니다.

    레디 스 더있다가 다른 답변에서 언급 한 바와 같이 있습니다.

  15. ==============================

    15.우리는 직장에서 우리의 프로젝트에 대한 부하 이륙로 레디 스 생각했다. 우리는 우리가 최고 속도를 HttpRedis2Module 또는 이와 유사한 것이라는의 nginx에서 모듈을 사용하지만 우리는 잘못을 입증하고 AB 테스트로 테스트 할 때 의해 그 생각했다.

    우리는 직장에서 우리의 프로젝트에 대한 부하 이륙로 레디 스 생각했다. 우리는 우리가 최고 속도를 HttpRedis2Module 또는 이와 유사한 것이라는의 nginx에서 모듈을 사용하지만 우리는 잘못을 입증하고 AB 테스트로 테스트 할 때 의해 그 생각했다.

    어쩌면 모듈이 불량하거나 레이아웃은했지만 그것은 매우 간단한 작업이었고, 그것은 PHP로 데이터를 가지고 다음 MongoDB를로 물건을 더 빨리했다. 우리는 캐싱 시스템으로 그 PHP와 MongoDB를 함께 APC를 사용하고 있습니다. 그것은 레디 스 모듈의 nginx 훨씬 더 빨리 다음이었다.

    내 팁은 당신에게 당신의 환경에 대한 결과를 표시합니다하고, 스스로를 테스트하는 것입니다. 우리는 말이 안하는 것처럼 레디 스를 사용하여 우리의 프로젝트에 불필요한 것을 결정했다.

  16. ==============================

    16.레디 스 더 낫다.

    레디 스 더 낫다.

    레디 스의 장점이 있습니다

    반면 Memcache의 메모리 내의 키 값 캐시 형 시스템이다.

  17. ==============================

    17.잘 나는 주로 내 애플 리케이션, Memcache의 캐시에 대한 세션과 교리에 대한 레디 스 / ORM 질의 객체와 모두를 사용했다. 성능면에서 모두 거의 동일합니다.

    잘 나는 주로 내 애플 리케이션, Memcache의 캐시에 대한 세션과 교리에 대한 레디 스 / ORM 질의 객체와 모두를 사용했다. 성능면에서 모두 거의 동일합니다.

  18. ==============================

    18.여기에 아마존에서 제공하는 정말 좋은 글 / 차이입니다

    여기에 아마존에서 제공하는 정말 좋은 글 / 차이입니다

    레디 스는 memcached를 함께 비교하는 확실한 승자입니다.

    하나 플러스 Memcached가에 대한 포인트 그것은 멀티 스레드와 빠른됩니다. 레디 스 훌륭한 기능을 많이 가지고 있으며, 매우 빠른이지만, 하나 개의 코어로 제한했다.

    Memcached가 지원되지 않습니다 레디 스에 대한 중대한 점,

  19. from https://stackoverflow.com/questions/10558465/memcached-vs-redis by cc-by-sa and MIT license