2011-08-19 43 views
5

Hãy xem xét các vấn đề sau. Từ bảng điều khiển heroku của tôi:Các vấn đề về bộ nhớ cache lạ với heroku/memcache và 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", 

Siêu lạ - làm cách nào để xóa bộ nhớ cache của mình !!


Vấn đề tương tự? : https://stackoverflow.com/q/7122513/192791

+0

Bạn đã thử một 'Rails.cache.read ('key')' trong đó bạn biết có một giá trị được lưu trữ trong bộ nhớ cache cho khóa cụ thể đó không. Vì số liệu thống kê được đề cập đến @ b-r-o-s không phải lúc nào cũng được cập nhật ngay lập tức, nhưng nếu bạn cố gắng đọc từ bộ nhớ cache thì nó sẽ trả về ngay lập tức. –

+0

Tôi đang đối mặt với một cái gì đó tương tự, tôi chạy một Rails.cache.clear và tôi phải khởi động lại trường hợp của tôi nếu tôi muốn xem bộ nhớ cache nạp lại. Kỳ dị. – chischaschos

Trả lời

3

Nếu bạn kết nối trực tiếp đến Dalli/client memcahced thông qua giao diện điều khiển và flush_all bộ nhớ cache xóa.

ví dụ:

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

Chú ý: các số liệu thống kê mất một thời gian để cập nhật, nhưng bộ nhớ cache sẽ chắc chắn rõ ràng.

+0

Lưu ý rằng 'ActiveSupport :: Cache :: DalliStore' đã sử dụng lệnh flush_all khi bạn chạy' clear' xem tài liệu tại đây: http://rubydoc.info /gems/dalli/1.0.5/ActiveSupport/Cache/DalliStore –

1

Các Hết hạn bộ nhớ cache phần tại http://devcenter.heroku.com/articles/building-a-rails-3-application-with-the-memcache-addon gợi ý sử dụng bộ lọc

after_save :expire_contact_all_cache 
after_destroy :expire_contact_all_cache 

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

Tuy nhiên, điều đó không hiệu quả đối với các mảnh trong chế độ xem - phải không? – Slick23

+0

Cảm ơn vì điều này - Tôi không tìm kiếm một chiến lược bộ nhớ cache hết hạn - Tôi muốn biết tại sao Rails.cache.clear không xóa bộ nhớ cache. (Khi tôi đưa ra một bản phát hành mới - Tôi muốn xóa hoàn toàn bộ nhớ cache) – Jonathan

Các vấn đề liên quan