का उपयोग कर कैश कुंजी को कैसे हटाया जाए, मैं रेडिस-रेल का उपयोग कर रहा हूं। कैश कुंजी के लिए मैं एक सरणी का उपयोग कर रहा: [: translated_attribute, आईडी self.class.name,]आंशिक मिलान
Rails.cache.fetch([self.class.name, :translated_attribute, id, field, I18n.locale]) do
self.read_attribute field, locale: I18n.locale
end
अब मैं के साथ महत्वपूर्ण मैचों के साथ सभी कैश निकालना होगा। मुझे पता है कि इसमें delete_matched
है जो आंशिक मिलान के लिए कुंजी के बाद वाइल्डकार्ड (*) लेता है।
लेकिन मुझे नहीं पता कि सटीक कुंजी क्या उत्पन्न हुई है। अब मुझे पता होना चाहिए कि जब हम सरणी को कुंजी के रूप में उपयोग करते हैं तो यह कुंजी कैसे बनाता है। मेरा मतलब है कि अगर मैं [: foo,: bar,: dum] का उपयोग करता हूं तो कैश कुंजी कैश स्टोर में सटीक कुंजी क्या होगी?
यह डेटास्टोर के रूप में memcache के लिए काम नहीं करता है। कोई अन्य विकल्प? –
उत्पादन में 'delete_matched' का उपयोग करने के बारे में सावधान: ' 'प्रदर्शन नोट: यह ऑपरेशन बड़े उत्पादन डेटाबेस के लिए खतरनाक हो सकता है, क्योंकि यह रेडिस" KEYS "कमांड का उपयोग करता है, जो कि ओ (एन) कुंजी की कुल संख्या पर है डेटाबेस में बड़े रेडिस कैश के उपयोगकर्ताओं को इस विधि से बचना चाहिए। ' http://www.rubydoc.info/gems/redis-activesupport/4.0.0/ActiveSupport%2FCache%2FRedisStore:delete_matched – DFish