ruby on rails - development - Rieles y almacenamiento en caché, ¿es fácil cambiar entre Memcache y Redis?
rails etag (3)
Las partes ordenadas de Redis incluyen el almacenamiento en caché de elementos "basados en listas", empujando / reventando cosas de esta lista a medida que suceden en su aplicación.
En lugar de deserializar un gran valor de memcached, editarlo y luego volver a serializarlo.
Esto se haría en código Ruby en un filtro personalizado, frente a la memoria caché básica de rieles.
¿Hay una API común como que si cambio de Redis o Memcached no tengo que cambiar mi código, solo una configuración?
No me gusta meterme en tus objetivos, pero desaconsejaría usar redis sobre memcached para caché genérico de rieles.
Uso redis y resque extensivamente en una aplicación de rieles grandes y pensé que sería bueno consolidar el almacenamiento en caché, redis sin procesar y resque en uno. Me encontré con algunos problemas importantes:
- Primero, fue más lento. Podría haber sido totalmente mi uso específico, la biblioteca redis-store o redis sí mismo. No voy a hablar mal de nada y su kilometraje puede variar, pero sería una tontería perder un montón de tiempo cambiando a redis cuando la memcached "simplemente funciona"
- Memcached es agradable porque es extremadamente fácil agregar servidores y usar hash consistentes para lograr sus objetivos. Redis tiene esto también, pero en mi experiencia fue difícil tratar simultáneamente redis, ya que tanto un almacén de datos monolítico en algunas partes de mi aplicación como en otras partes lo tratan como una distribución distribuida, consistentemente en hash de almacenamiento en caché.
Buena suerte con tu proyecto. Me encanta redis Y mecanografiar y usarlos en todos mis proyectos, pero dejo que uno haga su trabajo como un servidor de estructura de datos kick-ass y dejo que el otro patee el culo en el almacenamiento en caché.
Siempre que usted no inicialice el cliente Memcached usted mismo, sino que confíe en la API común de Rails.cache
, cambiar de Memcached a Redis es solo una cuestión de instalar redis-store y cambiar la configuración de
config.cache_store = :memcached_store
a
config.cache_store = :redis_store