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

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

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

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

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

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

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

स्यूडो-कोड

# की को रीनेम करें newkey = "gc:hashes:" + redis.INCR("gc:index") redis.RENAME("my.zset.key", newkey) # सॉर्टेड सेट से मेंबर्स को 100 के बैचों में हटाएं while redis.ZCARD(newkey) > 0 redis.ZREMRANGEBYRANK(newkey, 0, 99) end 

Ruby

$redis = Redis.new def delete_sorted_set(key) # की को रीनेम करें newkey = "gc:zsets:#{$redis.incr("gc:index")}" $redis.rename(key, newkey) # सॉर्टेड सेट से मेंबर्स को 100 के बैचों में हटाएं while $redis.zcard(newkey) > 0 $redis.zremrangebyrank(newkey, 0, 99) end end # उदाहरण: # # delete_sorted_set("my.large.set")

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

  • Resque
  • Sidekiq

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


  1. Redis ZREVRANGE में मास्टर करें: अवरोही रैंक क्रम में सॉर्टेड सेट एलिमेंट्स प्राप्त करें Redis ZREVRANGE में मास्टर करें: अवरोही रैंक क्रम में सॉर्टेड सेट एलिमेंट्स प्राप्त करें

    ZREVRANGE कमांड ZREVRANGE कमांड, निर्दिष्ट की पर संग्रहीत सॉर्टेड सेट मान के एक या अधिक एलिमेंट्स को निर्दिष्ट रेंज द्वारा परिभाषित करके लौटाता है। सॉर्टेड सेट में एलिमेंट्स स्कोर के अवरोही क्रम में होते हैं। समान स्कोर वाले एलिमेंट्स के लिए अवरोही लेक्सिकोग्राफिकल क्रम का उपयोग किया जाता है। रेंज क

  1. Redis ZRANGE का उपयोग: आरोही रैंक रेंज द्वारा सॉर्टेड सेट एलिमेंट्स प्राप्त करें Redis ZRANGE का उपयोग: आरोही रैंक रेंज द्वारा सॉर्टेड सेट एलिमेंट्स प्राप्त करें

    ZRANGE कमांड ZRANGE कमांड, निर्दिष्ट की पर संग्रहीत सॉर्टेड सेट मान के एक या अधिक एलिमेंट्स को निर्दिष्ट रेंज द्वारा परिभाषित करके लौटाता है। सॉर्टेड सेट में एलिमेंट्स स्कोर के आरोही क्रम में होते हैं। समान स्कोर वाले एलिमेंट्स के लिए आरोही लेक्सिकोग्राफिकल क्रम का उपयोग किया जाता है। रेंज को प्रारं

  1. Redis में ZCARD से सॉर्टेड सेट का आकार जानें Redis में ZCARD से सॉर्टेड सेट का आकार जानें

    सिंटैक्स: redis host:port> ZCARD <key name> आउटपुट: (पूर्णांक) मान, सॉर्टेड सेट में एलिमेंट्स की संख्या दर्शाता है। (पूर्णांक) 0, यदि की मौजूद नहीं है। त्रुटि, यदि की मौजूद है और की पर संग्रहीत मान सॉर्टेड सेट नहीं है। उदाहरण: संदर्भ: ZCARD कमांड डॉक्स Redis डेटास्टोर में संग्रहीत सॉ