Redis raylarını kullanıyorum. önbellek anahtarı için ben bir dizi kullanıyorum: [: translated_attribute, id self.class.name,], kısmi eşlemeyi kullanarak önbellek anahtarını nasıl silebilir
Rails.cache.fetch([self.class.name, :translated_attribute, id, field, I18n.locale]) do
self.read_attribute field, locale: I18n.locale
end
Şimdi kilit maçlarla tüm önbellek kaldırmak gerekir. Ben kısmi eşleme için anahtar sonra joker (*) alır delete_matched
olduğunu biliyorum.
Ama tam olarak üretilen anahtarın ne olduğunu bilmiyorum. Şimdi diziyi anahtar olarak kullandığımızda anahtarın nasıl yapıldığını bilmem gerekiyor. [: Foo,: bar,: dum] önbellek anahtarı olarak kullanırsam, önbellek deposunda tam anahtar ne olacak?
Bu, memcache için veri deposu olarak çalışmaz. diğer seçenekler –
Üretimde 'delete_matched' işlevini kullanırken dikkatli olun: ' '' Performans notu: Bu işlem, büyük üretim veritabanları için tehlikeli olabilir, çünkü Redis “KEYS” komutunu kullanır, bu, toplam anahtar sayısı üzerinden O (N) olur. veritabanında. Büyük Redis önbelleği kullanan kullanıcıların bu yöntemi kullanmaması gerekir. http://www.rubydoc.info/gems/redis-activesupport/4.0.0/ActiveSupport%2FCache%2FRedisStore:delete_matched – DFish