2011-08-19 14 views
5

Considere lo siguiente. Desde mi consola heroku:Problemas extraños de caché con heroku/memcache y dalli

>> Rails.cache.stats 
=> {"server_id"=>{"evictions"=>"0", "curr_items"=>"2064", "total_items"=>"18793", "bytes"=>"7674501", ... 
>> Rails.cache.clear 
=> [true] 
>> Rails.cache.stats 
=> {"server_id"=>{"evictions"=>"0", "curr_items"=>"2064", "total_items"=>"18793", "bytes"=>"7674501", 

Super raro, ¿cómo puedo borrar mi caché?


¿Problemas similares? : https://stackoverflow.com/q/7122513/192791

+0

¿Has probado un 'Rails.cache.read ('clave')' donde sabes que hay un valor almacenado en el caché para esa clave en particular. Como las estadísticas de @ b-r-o-s no siempre se actualizan de inmediato, pero si intentas leer desde la memoria caché, entonces debería volver a cero inmediatamente. –

+0

Me enfrento a algo similar, ejecuto un Rails.cache.clear y debo reiniciar mi instancia si deseo que se vuelva a cargar el caché. Extraño. – chischaschos

Respuesta

3

Si se conecta directamente a la/el cliente memcahced Dalli a través de la consola y flush_all borra la memoria caché.

decir

dc = Dalli::Client.new('localhost:11211') 
dc.flush_all 

NOTA: las estadísticas de tomar un tiempo para actualizar, pero la caché será definitivamente claro.

+0

Tenga en cuenta que 'ActiveSupport :: Cache :: DalliStore' utilizó flush_all cuando ejecuta' clear', consulte los documentos aquí: http://rubydoc.info /gems/dalli/1.0.5/ActiveSupport/Cache/DalliStore –

1

El caché caducidad sección al http://devcenter.heroku.com/articles/building-a-rails-3-application-with-the-memcache-addon sugiere el uso de filtros

after_save :expire_contact_all_cache 
after_destroy :expire_contact_all_cache 

def expire_contact_all_cache 
    Rails.cache.delete('Contact.all') 
end 
+1

Eso no funciona para los fragmentos en la vista, ¿verdad? – Slick23

+0

Gracias por esto, no estoy buscando una estrategia de caché a punto de caducar. Quiero saber por qué Rails.cache.clear no borra el caché. (Cuando publico una nueva versión, quiero borrar totalmente la caché) – Jonathan

Cuestiones relacionadas