Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Redis

सर्वर ब्लॉकिंग के बिना बड़े Redis Sets को कुशलतापूर्वक हटाएं

Redis में बड़े ऑब्जेक्ट्स को हटाना धीमा क्यों है, इसके बारे में अधिक जानने के लिए यह त्वरित अवलोकन पढ़ें

Redis में एक बड़े सेट को हटाने के लिए:

  1. की को एक यूनिक, नेमस्पेस्ड की पर रीनेम करें ताकि सेट अन्य Redis क्लाइंट्स को तुरंत "हटाया हुआ" दिखाई दे।

  2. सेट से मेंबर्स को छोटे बैचों में इन्क्रीमेंटली तब तक हटाएं जब तक यह खाली न हो जाए। अपने डिलीट कमांड्स के आकार को सीमित करके, हम सुनिश्चित करते हैं कि हम सर्वर को बहुत लंबे समय तक ब्लॉक न करें।

कृपया ध्यान दें कि निम्नलिखित कोड Redis कनेक्शन विफलताओं को ग्रेसफुली हैंडल नहीं करता है। यदि कोई Redis कमांड विफल होता है और एक्सेप्शन उठाता है, तो आपको मैन्युअल रूप से सफाई करने की आवश्यकता होगी।

स्यूडो-कोड

# की को रीनेम करें newkey = "gc:hashes:" + redis.INCR("gc:index") redis.RENAME("my.set.key", newkey) # सेट से मेंबर्स को 100 के बैचों में हटाएं cursor = 0 loop cursor, members = redis.SSCAN(newkey, cursor, "COUNT", 100) if size of members > 0 redis.SREM(newkey, members) end if cursor == 0 break end end 

Ruby

$redis = Redis.new def delete_set(key) # की को रीनेम करें newkey = "gc:sets:#{$redis.incr("gc:index")}" $redis.rename(key, newkey) # सेट से मेंबर्स को 100 के बैचों में हटाएं cursor = "0" loop do cursor, members = $redis.sscan(newkey, cursor, count: 100) $redis.srem(newkey, members) if members.size > 0 break if cursor == "0" end end # उदाहरण: # # delete_set("my.large.set")

उपरोक्त का उपयोग करके Ruby में बैकग्राउंड जॉब्स में कुछ उदाहरण कार्यान्वयन यहां दिए गए हैं:

  • Resque
  • Sidekiq

← "Redis में बड़े ऑब्जेक्ट्स हटाने" पर वापस


  1. Redis GEOPOS से एकाधिक जियोस्पेशियल कोऑर्डिनेट्स प्राप्त करें: चरण-दर-चरण गाइड Redis GEOPOS से एकाधिक जियोस्पेशियल कोऑर्डिनेट्स प्राप्त करें: चरण-दर-चरण गाइड

    GEOPOS कमांड यह कमांड की पर संग्रहीत जियोस्पेशियल मान (सॉर्टेड सेट) के एक या अधिक निर्दिष्ट मेंबर्स के लॉन्गिट्यूड, लैटिट्यूड लौटाने के लिए उपयोग किया जाता है। जब कोऑर्डिनेट्स (लॉन्गिट्यूड, लैटिट्यूड) GEOADD कमांड का उपयोग करके जियोस्पेशियल मान में डाले जाते हैं, तो उन्हें 52-बिट जियोहेस में बदल दिय

  1. Redis GEODIST से जियोस्पेशियल मेंबर्स के बीच दूरी की गणना करें Redis GEODIST से जियोस्पेशियल मेंबर्स के बीच दूरी की गणना करें

    GEODIST कमांड यह कमांड की पर संग्रहीत जियोस्पेशियल मान (सॉर्टेड सेट) के दो मेंबर्स के बीच की दूरी को निर्दिष्ट यूनिट में लौटाने के लिए उपयोग किया जाता है। यदि एक या दोनों निर्दिष्ट मेंबर्स जियोस्पेशियल मान में मौजूद नहीं हैं, तो null लौटाया जाता है। निर्दिष्ट यूनिट निम्न प्रकार की होनी चाहिए: m मी

  1. एक्सेल में बड़े डेटा सेट का विश्लेषण: 6 शक्तिशाली तकनीकें एक्सेल में बड़े डेटा सेट का विश्लेषण: 6 शक्तिशाली तकनीकें

    यह लेख आपको बड़े डेटा सेट का एक्सेल में विश्लेषण करना सिखाएगा। अपने व्यवसाय की गतिविधियों के फायदे और नुकसान जानना बहुत महत्वपूर्ण है। किसी संगठन के खातों और बिक्री रिकॉर्ड को बनाए रखना एक गतिशील प्रक्रिया है। क्योंकि बिक्री, खरीद या विनिमय एक निश्चित अवधि में बार-बार होते हैं। इसलिए यदि आप आज से पि