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

Redis में बड़े हैश को कुशलतापूर्वक हटाना: सर्वोत्तम अभ्यास

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

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

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

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

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

स्यूडो-कोड

# की को रीनेम करें newkey = "gc:hashes:" + redis.INCR( "gc:index" ) redis.RENAME("my.hash.key", newkey) # हैश से फील्ड्स को 100 के बैचों में हटाएं cursor = 0 loop cursor, hash_keys = redis.HSCAN(newkey, cursor, "COUNT", 100) if hash_keys count > 0 redis.HDEL(newkey, hash_keys) end if cursor == 0 break end end 

Ruby

$redis = Redis.new def delete_hash(key) # की को रीनेम करें newkey = "gc:hashes:#{$redis.incr("gc:index")}" $redis.rename(key, newkey) # हैश से फील्ड्स को 100 के बैचों में हटाएं cursor = "0" loop do cursor, fields = $redis.hscan(newkey, cursor, count: 100) hkeys = fields.map { |pair| pair[0] } $redis.hdel(newkey, hkeys) if hkeys.size > 0 break if cursor == "0" end end # उदाहरण: # # delete_hash("my.large.hash")

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

  • Resque
  • Sidekiq

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


  1. नवीनीकृत Redis.io पेश: आधुनिक डिज़ाइन, अद्यतन डॉक्स, और उन्नत उपयोगकर्ता अनुभव नवीनीकृत Redis.io पेश: आधुनिक डिज़ाइन, अद्यतन डॉक्स, और उन्नत उपयोगकर्ता अनुभव

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

  1. Redis हैशेज में महारत हासिल करें: तेज़, लचीला डेटा स्टोरेज Redis हैशेज में महारत हासिल करें: तेज़, लचीला डेटा स्टोरेज

    Redis में हैशेज एक ही कुंजी के तहत संबद्ध फील्ड-वैल्यू जोड़े को स्टोर करने का एक तरीका है, जहां फील्ड और मान दोनों स्ट्रिंग्स हैं। Redis डेटा संरचना के समग्र रूप से और संरचना में प्रत्येक फील्ड में संशोधन की अनुमति देता है। यह इसे एप्लिकेशन में ऑब्जेक्ट्स के लिए एक शानदार (और बहुत तेज़) बैकिंग स्टोर

  1. फास्टली कंप्यूट@एज के साथ रेडिस को एकीकृत करना: कुशल पेज व्यू ट्रैकिंग के लिए फास्टली कंप्यूट@एज के साथ रेडिस को एकीकृत करना: कुशल पेज व्यू ट्रैकिंग के लिए

    इस पोस्ट में, हम एक साधारण एप्लिकेशन लिखेंगे जो फास्टली कंप्यूट@एज पर चलेगा। यह एप्लिकेशन पेज व्यू को ट्रैक करने के लिए अपस्टैश रेडिस का उपयोग करेगा। प्रेरणा एज कंप्यूटिंग हाल के वर्षों में सबसे रोमांचक ट्रेंड्स में से एक है। क्लाउडफ्लेयर और फास्टली जैसी CDN सेवाओं ने उपयोगकर्ताओं को अपने एज इंफ्रा