Frage

Gibt es eine gemeinsame api, so dass, wenn ich zwischen Redis wechseln oder Memcached ich meinen Code nicht ändern, nur eine Konfigurationseinstellung?

War es hilfreich?

Lösung

Solange Sie initialisieren nicht die Memcached-Client selbst, aber sie verlassen sich auf Rails.cache gemeinsame API, von Memcached zu Redis Umschalten ist nur eine Frage der Installation von Redis-store und Änderung der Konfiguration von

config.cache_store = :memcached_store

config.cache_store = :redis_store

Mehr Informationen über Rails.cache .

Andere Tipps

Ich hasse mit Ihren Zielen zu verwirren, aber ich würde davon abraten redis mit über für allgemeine Schienen Memcached-Caching.

Ich verwende redis und resque ausgiebig in einer großen Rails-Anwendung und ich dachte, es wäre schön, Caching, roh redis und resque in eine zu konsolidieren. Ich lief in ein paar großen Themen:

  1. Zunächst einmal, es war langsamer. Es könnte meinen spezifischen Verbrauch, die redis-store-Bibliothek oder Redis selbst völlig gewesen. Ich bin nicht zu badmouth etwas los und die Leistung kann variieren, aber es würde saugen viel Zeit Umschaltung auf redis abzuladen, wenn Memcached „einfach funktioniert“
  2. Memcached ist schön, weil es extrem einfach ist, Server hinzuzufügen und konsistenten Hashing, um Ihre Ziele zu erreichen. Redis hat auch das, aber in meiner Erfahrung war es beide gleichzeitig behandeln redis als ein monolithischer Datenspeicher Speicher in einigen Teilen meiner app und in anderen Teilen behandeln es als eine verteilte, konsequent gehasht Blobs von Cachen schwierig.

Viel Glück mit Ihrem Projekt. Ich liebe redis UND Memcached und sie in allen meinen Projekten, aber ich lasse man seinen Job als Kick-Ass-Datenstruktur Server tun und den anderen kick ass bei Caching lassen.

Die ordentlichen Teile Redis umfassen das Caching „list-based“ Dinge - Schiebe- / Dinge aus dieser Liste taucht, wie sie in Ihrer Anwendung passieren.

Anstatt einen großen Wert von Memcached de-Serialisierung, es bearbeiten, dann wieder Serialisierung es.

Dies in einem benutzerdefinierten Filter in Ruby-Code getan werden würde, im Vergleich zu den Basisschienen-Cache.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top