/ / मैं उपयोगकर्ता विशिष्ट वस्तुओं को कैश कैसे करूं - रूबी

मैं उपयोगकर्ता विशिष्ट वस्तुओं को कैश कैसे करूं - रूबी

मैं एक विशिष्ट कुंजी / गुप्त संयोजन के लिए "foo" ऑब्जेक्ट को कैश करना चाहता हूं। मुझे रूबी में ऐसा करने के बारे में कैसे जाना चाहिए।

require "foo/api"

foo = Foo::API::Client.new(key, secret)

उत्तर:

उत्तर № 1 के लिए 1

यह कैशिंग के लिए उपयोग की जाने वाली चीज़ों पर निर्भर करता है, और आप किस प्रकार का कैश चाहते हैं। कैश के प्रकार के बावजूद, सामान्य प्रक्रिया कैश कुंजी के हिस्से के रूप में कुंजी / रहस्य का उपयोग करना है।

उदाहरण के लिए, ज्ञापन का उपयोग करना।

cache = {}
cache["foo-#{key}:{secret}"] ||= Foo::API::Client.new(key, secret)

आप सभी को कक्षा या विधि में लपेट सकते हैं।

def client(key, secret)
@clients ||= {}
@clients["client-#{key}:{secret}"] ||= Foo::API::Client.new(key, secret)
end

यदि आप बाहरी कैश चाहते हैं, जैसे फ़ाइल कैश या मेमकैच कैश, बस उसी तकनीक को अपनाने और कुंजी और गुप्त का उपयोग करके कैश कुंजी लिखें।

यदि कुंजी और रहस्य "गुप्त" तार हैं, तो आप एक एसएचए या एमडी 5 हैश की गणना कर सकते हैं और स्पष्ट मानों के बजाए इसे कुंजी के रूप में उपयोग कर सकते हैं।