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

रूबी - समाप्ति कार्यान्वयन के साथ रेडिस आधारित म्यूटेक्स

यदि आप रेडिस 2.6+ का उपयोग कर रहे हैं, तो आप लुआ स्क्रिप्टिंग इंजन के साथ इसे और अधिक सरलता से कर सकते हैं। रेडिस दस्तावेज कहता है:

<ब्लॉकक्वॉट>

एक रेडिस स्क्रिप्ट परिभाषा के अनुसार लेनदेन संबंधी है, इसलिए रेडिस लेनदेन के साथ आप जो कुछ भी कर सकते हैं, आप एक स्क्रिप्ट के साथ भी कर सकते हैं, और आमतौर पर स्क्रिप्ट सरल और तेज दोनों होगी।

इसे लागू करना मामूली है:

LUA_ACQUIRE = "return redis.call('setnx', KEYS[1], 1) == 1 and redis.call('expire', KEYS[1], KEYS[2]) and 1 or 0"
def lock(key, timeout = 3600)
  if redis.eval(LUA_ACQUIRE, key, timeout) == 1
    begin
      yield
    ensure
      r.del key
    end
  end
end

उपयोग:

lock("somejob") { do_exclusive_job }


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. redis ऐसा लगता है जैसे सर्वर ने कनेक्शन बंद कर दिया है

  2. कार्य नाम से अजवाइन कार्यों का निरीक्षण और रद्द कैसे करें

  3. रेडिस दृढ़ता के साथ मासट्रांसिट गाथा देता है मेथड एक्पेट में कार्यान्वयन अपवाद नहीं है

  4. Redis बनाम Memcached – 2021 तुलना

  5. फ्लशडीबी के साथ रेडिस कीस्पेस सूचनाएं