복붙노트

[REDIS] 레디 스 및 Memcache를하거나 레디 스?

REDIS

레디 스 및 Memcache를하거나 레디 스?

나는 간단한 Rails.cache 인터페이스를 통해 내 레일 3 응용 프로그램에서 일부 캐싱에 memcached를 사용하고 있는데 지금은 레디 스 및 resque와 함께 몇 가지 배경 작업 처리를 수행하고 싶습니다.

나는 그들이 모두를 사용하여 보증하는 다양한 충분한 것 같아요. Heroku가에하지만, 모두 memcached를하고 레디 스를 사용하는 별도의 수수료가 있습니다. 이 의미를 모두 사용하거나 그냥 레디 스를 사용하여 마이그레이션해야 할합니까?

가장 최근에 사용 된 키가 자동으로 캐시에서 얻을수 내가 지속 캐시 데이터를 필요로하지 않기 때문에 캐싱을 위해 memcached를 사용하여 같은 I. 레디 스 나에게 주로 새로운, 그러나 나는 기본적으로 지속의 이해와 그 키가 자동으로 캐시에서 만료되지 않습니다.

편집 : 그냥 내 질문에 더 명확하게하고 싶었다. 내가 대신 모두의 레디 스를 사용하는 것이 가능 알고있다. 난 그냥 이렇게 어떤 특정의 단점이 있는지 알고 싶은 것 같아요? 구현 및 인프라 모두를 고려, 난 그냥 레디 스를 사용해서는 안 이유가있는 이유는? (즉, 빠르고 간단한 캐싱을 위해 memcached를한다?) 나는 확실한 어느 쪽이든 아무것도 발견하지 않았습니다.

해결법

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

    1.이미 수행 캐싱 레디 스에 memcached를 마이그레이션하는 것은 충분히 쉽게이라고 가정 할 때, 나는 단지 일을 간단하게 유지하기 위해 레디 스 갈 것입니다.

    이미 수행 캐싱 레디 스에 memcached를 마이그레이션하는 것은 충분히 쉽게이라고 가정 할 때, 나는 단지 일을 간단하게 유지하기 위해 레디 스 갈 것입니다.

    당신이 그만큼 당신이 원하는 경우에 memcached처럼 사용할 수 있도록 레디 스 지속성에서 선택 사항입니다. 당신은 당신의 캐시가 지속 만드는 것은 다시 시작한 후 캐시 미스를 많이 피하기 위해 유용하다는 것을 알 수 있습니다. 알고리즘은 비트 memcached를 다른 있지만, 대부분의 목적을 위해 중요하는 것만으로는 충분하지 않습니다 - - 만료도 사용할 수 있습니다 자세한 내용은 http://redis.io/commands/expire를 참조하십시오.

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

    2.이 같은 expires_in 옵션 : 나는 레디 스 매장의 저자 해요, 단지를 사용하여 직접 레디 스 명령을 사용할 필요가 없습니다 :

    이 같은 expires_in 옵션 : 나는 레디 스 매장의 저자 해요, 단지를 사용하여 직접 레디 스 명령을 사용할 필요가 없습니다 :

    ActionController :: Base.cache_store = redis_store : expires_in => 5.minutes

    사용 레디 스의 장점은 견뢰도, 그리고 내 보석과 함께, 당신은 이미 랙 :: 캐시, Rails.cache 또는 국제화를위한 매장을 가지고있다.

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

    3.나는 Memcached가와 레디 스 모두 사용하는 몇 가지 큰 레일 사이트를 본 적이있다. Memcached가 메모리에 뜨거운 유지하는 좋은 있지만 필요한 경우 재생 / 손실 될 수 있습니다 임시 것들을 사용하고, 레디 스 영구 저장소입니다. 모두 읽기 / 쓰기 무거운 작업에 주요 DB 오프로드를 수행하는 데 사용됩니다.

    나는 Memcached가와 레디 스 모두 사용하는 몇 가지 큰 레일 사이트를 본 적이있다. Memcached가 메모리에 뜨거운 유지하는 좋은 있지만 필요한 경우 재생 / 손실 될 수 있습니다 임시 것들을 사용하고, 레디 스 영구 저장소입니다. 모두 읽기 / 쓰기 무거운 작업에 주요 DB 오프로드를 수행하는 데 사용됩니다.

    자세한 내용은:

    memcached를 : 페이지 / 조각 / 응답 캐싱 사용하고 그것이 LRU는 (적어도 최근에 사용) 때문에 Memcached가에 메모리 제한을 칠 오래된 물건을 만료하고, 자주 뜨거운 메모리에 액세스 키를 계속 확인합니다. 그것은 필요한 경우 Memcached가 아무것도는 DB에서 다시 할 수있는 것이 중요합니다 (그렇지 유일한 사본입니다). 하지만 당신은 그것으로 물건을 덤핑 유지할 수 있으며, Memcached가 가장 자주 사용되는 그림 및 메모리에 그 뜨거운 계속됩니다. 당신은 Memcached가에서 사물을 제거에 대해 걱정할 필요가 없습니다.

    당신이 잃고 싶지 않을 것이라고 당신이 데이터에이를 사용하고, 메모리에 맞게 작은 충분하다 : 레디 스. 이것은 보통 resque /의 sidekiq 작업, 속도 제한에 대한 카운터, 분할 테스트 결과, 또는 / 재 작성을 잃고 싶지 것이 아무것도 포함되어 있습니다. 당신은 당신이 저장하고 나중에 정리 대해 조금 더 신중해야하므로, 여기에 메모리 제한을 초과하지 않습니다.

    레디 스는 메모리 제한을 (내가 틀렸다면 정정 해줘) 초과하면 성능 문제를 고통을 시작합니다. 그것은 결코 메모리 한계에 도달하지 않도록, Memcached가와 LRU처럼 행동 레디 스를 구성하여이 문제를 해결 물건을 만료 가능합니다. 그러나 당신은 당신이 resque 작업처럼, 레디 스에서 유지되는 모든 것을이 작업을 수행 할 수 없다. 그래서 그 대신 사람들이 종종 기본을 유지의, Rails.cache합니다 (크루즈 보석을 사용하여) Memcached가를 사용하도록 설정. 그리고 그들은 = ... 전역 변수 레디 스 작업을 수행하는 별도의 $의 레디 스를 유지한다.

    # in config/application.rb
    config.cache_store = :dalli_store  # memcached
    
    # in config/initializers/redis.rb
    $redis = $redis = Redis.connect(url: ENV['REDIS_URL'])
    

    이 레디 스에서이 모든 것을 할 수있는 쉬운 방법이 될 수있다 - 아마 Memcache의 유사 두 개의 분리 된 레디 스 인스턴스 LRU 하드 메모리 제한으로 하나를함으로써 및 영구 저장소에 대한 또 다른? 나는이 사용 보지 못했다,하지만 난 그것을 행할 것 같은데요.

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

    4.나는이 주제에 대한 내 대답을 체크 아웃 고려할 것입니다 :

    나는이 주제에 대한 내 대답을 체크 아웃 고려할 것입니다 :

    레일 및 캐싱, 그것은 memcache에와 레디 스 사이를 전환하기 쉽다?

    캐싱에 memcached 및 데이터 구조 및 더 지속적인 가상 스토리지 레디 스 : 기본적으로, 내 경험을 통해, 나는 그들을 유지에 대해 별도의 옹호 것

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

    5.나는 어떤 제품에 대해 그들이 레일 캐싱 추천합니다 (Memcached가 클라우드와 레디 스 클라우드 기능 추가 제공) 레디 스 연구소에서 팀을 물었다. 그들은 일반적으로 그들이 Memcached가 클라우드는 주로 기존의 목적을 위해 제공하고, 자신의 Memcached가 클라우드 서비스가 레디 스 클라우드의 상단에 사실 빌드에 있음을 지적되어, 레디 스 클라우드를 추천 할 것이라고 말했다.

    나는 어떤 제품에 대해 그들이 레일 캐싱 추천합니다 (Memcached가 클라우드와 레디 스 클라우드 기능 추가 제공) 레디 스 연구소에서 팀을 물었다. 그들은 일반적으로 그들이 Memcached가 클라우드는 주로 기존의 목적을 위해 제공하고, 자신의 Memcached가 클라우드 서비스가 레디 스 클라우드의 상단에 사실 빌드에 있음을 지적되어, 레디 스 클라우드를 추천 할 것이라고 말했다.

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

    6.나는 당신이 그들을 사용하지만, 실제로 모두가 당신에게 성능 이점을 제공 할 수 있습니다 사용하는지 모르겠 : Memcached가 훨씬 더 나은 성능, 레디 스보다 멀티 코어에 걸쳐 실행 그래서 Memcached가 가진 가장 중요한 데이터를 캐시와 레디 스에 나머지를 유지있다 , 데이터베이스로 그 기능을 활용, 성능을 향상시킬 수 있습니다.

    나는 당신이 그들을 사용하지만, 실제로 모두가 당신에게 성능 이점을 제공 할 수 있습니다 사용하는지 모르겠 : Memcached가 훨씬 더 나은 성능, 레디 스보다 멀티 코어에 걸쳐 실행 그래서 Memcached가 가진 가장 중요한 데이터를 캐시와 레디 스에 나머지를 유지있다 , 데이터베이스로 그 기능을 활용, 성능을 향상시킬 수 있습니다.

  7. from https://stackoverflow.com/questions/4188620/redis-and-memcache-or-just-redis by cc-by-sa and MIT license