Redis
 sql >> डेटाबेस >  >> NoSQL >> Redis

ओम / रेडिस में एक गतिशील क्षेत्र सेट करना

attribute Ohm::Model . से क्लास मेथड नामित विशेषता के लिए एक्सेसर और म्यूटेटर विधियों को परिभाषित करता है:

def self.attribute(name)
  define_method(name) do
    read_local(name)
  end

  define_method(:"#{name}=") do |value|
    write_local(name, value)
  end

  attributes << name unless attributes.include?(name)
end

तो जब आप कहते हैं attribute :foo , आपको ये तरीके मुफ्त में मिलते हैं:

def foo         # Returns the value of foo.
def foo=(value) # Assigns a value to foo.

आप send . का उपयोग कर सकते हैं म्यूटेटर विधि को इस तरह कॉल करने के लिए:

@ohm_obj.send((att + '=').to_sym, val)

अगर आप वाकई @ohm_obj[att] = val . कहना चाहते हैं तो आप अपने OhmObj . में निम्न जैसा कुछ जोड़ सकते हैं कक्षा:

def []=(att, value)
    send((att + '=').to_sym, val)
end

और आप शायद चाहते हैं कि एक्सेसर संस्करण भी समरूपता बनाए रखे:

def [](att)
    send(att.to_sym)
end


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. साझा लाइब्रेरी लोड करते समय त्रुटि, साझा ऑब्जेक्ट फ़ाइल नहीं खोल सकता:ऐसी कोई फ़ाइल या निर्देशिका नहीं (hiredis)

  2. रेडिस व्यू डेस्कटॉप

  3. StackExchange.Redis के साथ क्षणिक नेटवर्क त्रुटियों को संभालना

  4. StackExchange.Redis के साथ समानांतर निष्पादन?

  5. क्या स्लेव-रीड-ओनली नो सेट करने से गुलाम मास्टर के साथ हर हैश लुकअप की पुष्टि करेगा?