2010-11-19 2 views

답변

42

redis-store를 설치하고

config.cache_store = :memcached_store 

까지 구성을 변경의 문제는 당신이 Memcached가 클라이언트에게 자신을 초기화하지 않습니다하지만 당신은 Memcached가에서 레디 스로 전환, Rails.cache 공통 API에 의존하고있는 한
config.cache_store = :redis_store 

more info about Rails.cache.

+1

결국 조각난 캐싱과 Sidekiq 작업 모두에서 Redis를 메모리 부족없이 어떻게 사용할 수 있습니까? 동일한 Redis 인스턴스를 사용하여 Sidekiq 작업을 항상 유지할 수 있지만 조각에 선입 선출 (FIFO)을 사용합니까? – Mohamad

37

귀하의 목표를 망쳐 놓는 것이 싫지만 일반 레일 캐싱에 memcached를 통한 redis 사용을 권장하지 않습니다.

큰 레일 응용 프로그램에서 redis와 resque를 광범위하게 사용하며 캐싱, 원시 redis 및 resque를 하나로 통합하는 것이 좋을 것이라고 생각했습니다. 몇 가지 큰 문제가 발생했습니다.

  1. 먼저 느리게 진행되었습니다. 그것은 나의 특정한 사용법, redis-store 라이브러리 또는 redis 그 자체 일 수있었습니다. 난 아무것도 badmouth 가지 않을거야 당신의 마일리지가 다를 수 있지만 memcached "그냥 작동"때 redis 전환 많은 시간을 덤프 빨아 것이다
  2. Memcached는 서버를 추가하고 일관된 해시를 사용하기 매우 쉽기 때문에 좋습니다. 목표를 달성하십시오. Redis도이 점이 있지만 제 경험으로 보면 Redis를 응용 프로그램의 일부 영역과 다른 부분의 모 놀리 식 데이터 저장소로 동시에 취급하는 것이 어려웠습니다. 분산 된 일관되게 해싱 된 캐시 저장소로 취급합니다.

프로젝트가 성공적으로 완료되었습니다. 나는 redis를 좋아하고 memcached를 사용하여 모든 프로젝트에서 사용하지만, 나는 그것을 킥 - 엉덩이 데이터 구조 서버로하고 다른 하나는 캐싱에서 엉덩이를 걷어 차게한다.

+5

http://seal-7.blogspot.com/2011/11/rails-benchmarking-reloaded.html –

+9

memcached는 멀티 스레드이며 Redis는 단일 스레드이므로 memcached는 단순 키 값 저장소로 Redis보다 처리량이 많습니다. . 따라서 Redis는 곧 최고 성능을 발휘하는 하나의 CPU 코어를 100 % 사용하게 될 것입니다. 반면 memcached는 최대한 많은 CPU 코어를 사용하므로 최대 처리량이 훨씬 더 높습니다. Redis는 더 빨라질 수 있지만 Redis는 추가 데이터 유형이나 지속성 또는 기타 기능을 사용할 때만 실제로 유용합니다. – ColinM

+2

이 질문은 실제로 다루지 않습니다. 또한 많은 사람들이 정확히 그것을 위해 성공적으로 사용하고있는 것처럼 일회성 경험이 Redis를 캐싱에 사용하지 말라고 충고한다고 생각하지 않습니다. – Yarin

2

Redis의 깔끔한 부분에는 앱에서 발생하는 목록의 내용을 푸시/팝하는 '목록 기반'의 캐싱이 포함됩니다.

memcached에서 큰 값을 역 직렬화하는 대신 편집하고 다시 직렬화하십시오.

이것은 기본 레일 캐시와 비교하여 사용자 정의 필터의 루비 코드에서 수행됩니다.