2010-09-28 12 views
7

Heroku admite Memcache de forma nativa como un complemento. mi problema es que, siendo todavía un novato en los rieles, no tengo ni idea de cómo usar Memcache para acelerar mi pedido que más tiempo consume (sé cuáles son mirando el análisis newrelic). ¿Deberíamos usar una gema como 'cache-money' en la parte superior de Memcache? ¿Alguien usa act_as_cached más?cómo usar Memcache para acelerar los carriles/heroku

Sé que esta es una pregunta bastante trivial. Sin embargo, después de buscar en la web durante horas, no pude encontrar un tutorial decente. Cualquier ayuda/enlace apreciado!

+0

almacenamiento en caché es una tema muy amplio y puedes hacer muchos tipos diferentes de él. Memcached no es nada especial; es solo un medio de almacenamiento para las cosas que desea almacenar en caché (ya que mysql puede ser su almacenamiento para los objetos que desea que sean persistentes). Otro tipo de almacenamiento en caché puede ser más adecuado para su página en particular. En cualquier caso, deberá proporcionarnos más detalles sobre su solicitud lenta para obtener respuestas decentes. ¿Qué tipo de página es? Público, o diferente para cada usuario? ¿La mayor parte del tiempo se dedica a consultar la base de datos o a mostrar las vistas? – tfe

+1

+1 para esta pregunta. También estoy buscando un tutorial útil sobre carriles + memcache. –

Respuesta

4

Usted puede ver Caching in Rails 2.1 y después lee el memcached documentation (supongo que ya lo ha leído) en Heroku.

Además, Touch and Cache es una técnica bastante interesante para evitar escribir sweepers para eliminar el contenido en caché cuando necesita actualizar los datos en caché. El uso del toque expirará automáticamente los datos almacenados en caché casi sin necesidad de escribir código nuevo.

Tenga en cuenta que hoy en día, la integración memcached Heroku supone que está utilizando rieles> = 2.3.3

La idea principal es que se agrega el resultado (s) de su tiempo método para consumir Rails.cache (que es la interfaz a través de la cual accede a su mecanismo de almacenamiento en caché). Cuando recupera ese (s) resultado (s), el mecanismo de caché busca para ver si puede encontrarlo o si no ha expirado.

Si lo encuentra, lo devuelve muy rápido porque lo saca de la caché.

Si no lo encuentra o si ha expirado (lo configura al llamar a fetch), ejecuta el método lento real para agregarlo o actualizarlo en caché.

Finalmente, es muy útil leer la documentación de Rails aparte de si está utilizando memcached o el caché integrado de Rails: Caching with Rails: An overview. Entre otras cosas se habla de:

  • caché de páginas
  • Acción almacenamiento en caché
  • Fragmento de almacenamiento en caché
  • Barredoras
  • almacenamiento en caché de SQL
  • y más ...
0

Puede almacenar en caché en la Memcache action_cache o puede acceder a memcache con Rails.cache