마 젠토 세션 스토리지 : Redis vs. Memcached


10

캐싱을위한 Redis ( Cm_Cache 확장, Redis v 2.2.12 )가 있는 Magento EE 1.12.2 (동일하게 CE 1.7.2)를 실행하고 있지만 세션 스토리지에 Memcache를 사용합니다.

이 Magento 버전에서는 Redis가 기본적으로 지원되지 않습니다. 그래서 내 관심사는 다음과 같습니다.

  • 노력과 속도 향상 측면에서 세션 스토리지를 Redis로 가져 오는 것이 번거 롭습니까?
  • Memcache는 그다지 좋지 않습니까?

이 프로젝트에는 타사 XML 파일을 세션에 저장해야하므로 세션 세션이 크므로 세션 읽기 및 쓰기를 최적화하면 상당한 영향을 줄 수 있습니다.

보낸 사람 local.xml:

<session_save><![CDATA[memcache]]></session_save>

과:

<cache>
    <backend>Cm_Cache_Backend_Redis</backend>
    [...]
</cache>

답변:


11

내 개념에 따라 Redis가 가장 좋습니다.

Memcached 는 무료 및 오픈 소스, 인 메모리 키-값 저장소, 고성능 분산 메모리 객체 캐싱 시스템입니다.

Redis 는 내구성이 옵션 인 오픈 소스, 네트워크, 인 메모리, 키-값 데이터 저장소입니다.

때문에

  1. Memcached는 휘발성 인 메모리 키 / 값 저장소입니다. Redis는 하나처럼 행동 할 수 있습니다 (Memcached뿐만 아니라 그 일을 함)
  2. 빠른 데이터 저장에 적합한 아키텍처입니다.
  3. 빠른 데이터 가져 오기
  4. 기본적으로 디스크 지속성
  5. 최대 512MB 크기의 값 (Memcached는 키당 1MB로 제한됨)
  6. 내장 클러스터링

Redis는 과부하 처리를위한 LRU 또는 유사한 정책을 지원하지 않습니다. Redis는 캐시 일관성을 유지하는 데 유용한 CAS (확인 및 설정)를 지원하지 않습니다. 가장 일반적인 Memcached 캐시 불일치 소스는 무엇입니까?를 참조하십시오. (이를 불필요하게 만드는 SETNX 작업이 있지만)

여기에 이미지 설명을 입력하십시오

자세한 내용 : Stackoverflow "Memcached와 Redis?"

Redis 고속 데이터 지원을 통한 일부 세부 정보 : Redis.io


좋아, 그것은 좋은 비교이며 링크는 둘 사이의 차이점에 대한 많은 정보를 제공합니다. 그러나 이미 Memcache를 사용하여 Redis로 변경하면 실제로 시도해 볼 가치가 있습니까?
7ochem

예. Redis를 사용할 때만 가능합니다 ... Magento EE 1.12.2.be에서 Redis를 사용하십시오
Amit Bera

7ochem, 당신은 저에게 투표를 포기 했습니까?
Amit Bera

3
큰 기여. 같은 질문이있었습니다. 지금 redis를 사용하고 있습니다. 한 매장에서 훌륭하게 작동하지만 다른 매장에서는 약간 덜 효과적입니다. memchache도 시도하십시오. @AmitBera memcache + apc 또는 redis + apc를 스택 할 수 있으며 local.xml은 어떻게 생겼습니까?
Kay Int Veen

3
"Redis는 과부하 처리를위한 LRU 또는 이와 유사한 정책을 지원하지 않습니다."- 다른 의미 가없는 한이를 공격 할 수 있습니다 . 또한 OP는 캐시 대신 세션을 Redis로 마이그레이션하려고하므로 세션 제거는 시간 기반이 아닌 시간 기반이기 때문에 LRU는 보너스가 아닙니다.
Melvyn

6

1.7.2의 CM Redis Cache는 해킹이 아니며 Magento는 코드가 잘 작동하고 쉽게 구현되기 때문에 기본적으로 1.8 이상으로 코드를 추가했습니다.

Redis는 데이터베이스로 인해 동일한 서버 인스턴스에서 캐시 및 세션을 지원합니다. memcached에서는 아마도 여러 개의 memcached 인스턴스를 시작할 것입니다.

Memcached는 디스크에 쓸 수도 있으며 서비스를 다시 시작한 후 세션을 저장하는 데 사용할 수 있습니다. 디스크에 쓸 때 memcached는 잠시 잠기므로 사이트에 오류가 발생할 수 있습니다. Redis는이 스택에 대한 다른 질문이 이미 표시된 것처럼 이것을 더 잘 처리합니다.

따라서 memcached보다 Redis를 권장합니다.


5

불행히도 이것은 흑백 답변이 아닙니다. 그래서 나는 당신에게 찬반 양론을 줄 것입니다 :

Memcache :

  • 하드 코딩 된 데이터 제한 (이 문제를 버리지 마십시오. 관리 세션이 쉽게 넘어갈 수 있음)
  • 디스크에 저장할 때 정지
  • 약간 더 나쁜 성능
  • 마 젠토 확장에는 봇 방어가 없습니다

레디 스 :

  • 세션에 대한 동시 액세스로 인해 일부 상점에서 Session :: read의 잠금 문제가 발생했습니다.
  • 한 번에 여러 데이터베이스를 지원하지만 몇 가지주의 사항이 있습니다.
  • Magento 확장 기능은 봇 방어를 지원하며 마이그레이션 스크립트와 함께 제공됩니다.
  • Magento 확장 기능은 snappy compression algorithm을 지원합니다.
  • 보다 적극적으로 유지 관리되는 코드베이스

이제 속도가 유일한 관심사라면 간단히로드 테스트를 실행하십시오. Blazemeter 의 무료 계정을 사용 하면 50 명의 가상 사용자가 작업 할 수 있으므로 차이를 측정 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.