2013-02-01 23 views
15

मुझे आश्चर्य है कि रेडिस में कोई सुविधा है जो मुझे सभी कालबाह्य कुंजी प्राप्त करने की अनुमति देती है (मेरा मतलब है कि किसी प्रकार की घटना है, जो मुझे सभी समाप्ति रिकॉर्ड वापस लेने का मौका देती है)। इसका उद्देश्य पुराने मानों को किसी अन्य डेटाबेस में सहेजना है। मैंने सुना है कि प्रकाशन तंत्र का उपयोग करना संभव है, लेकिन Google इस विचार के साथ हमारी सहायता नहीं कर सकता है।कुंजी की समाप्ति पर घटना

+0

यह उपरोक्त टिप्पणी के लिंक के समान नहीं है। वह सत्रों के बारे में है। यह पोस्ट अस्थिर कुंजी के बारे में है। – akonsu

उत्तर

18

रेडिस के वर्तमान विकास संस्करण में एक नई सुविधा है: कीस्पेस अधिसूचनाएं। प्रलेखन: http://redis.io/topics/notifications

Keyspace सूचनाएं ग्राहकों आदेश Redis डेटा किसी तरह से सेट को प्रभावित करने की घटनाओं प्राप्त करने के लिए पब/उप चैनलों की सदस्यता के लिए अनुमति देता है।

घटनाओं रहे हैं प्राप्त करने के लिए निम्नलिखित संभव है के उदाहरण:

  • सभी आदेशों किसी कुंजी को प्रभावित करने वाले।
  • एलपीयूएसएच ऑपरेशन प्राप्त करने वाली सभी कुंजी।
  • सभी कुंजियाँ डेटाबेस में समाप्त हो रही 0.

उम्मीद है, यह जल्द ही स्थिर करने के लिए यह कर देगा।

बीटीडब्ल्यू, यह आपकी समय सीमा समाप्त होने के मूल्यों को बचाने में मदद करने में बहुत उपयोगी नहीं होगा। जब समाप्ति घटना निकाल दी जाती है, तो मूल्य पहले से ही चला जाता है।

9

कुंजीपटल अधिसूचना द्वारा निर्मित अंतर्निहित समाप्ति घटना सटीक नहीं है। एक समय जुड़े रहते हैं करने के लिए दो तरह से Redis से समाप्त हो गई है कर रहे हैं के साथ की http://redis.io/topics/notifications

कुंजी अंतिम अनुभाग देखें:

  1. कुंजी एक आदेश द्वारा पहुँचा है और समाप्त हो गई हो पाया जाता है।

  2. वाया एक पृष्ठभूमि प्रणाली है कि पृष्ठभूमि में समाप्त हो गई चाबी के लिए संवर्द्धित लग रहा है, , क्रम में भी चाबियाँ कि पहुँचा कभी नहीं कर रहे हैं इकट्ठा करने के लिए सक्षम होने के लिए

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

एक accrue समाप्ति घटना को पूरी तरह कार्यान्वित करने के लिए, आपको इसे स्वयं लागू करना पड़ सकता है। उदाहरण के लिए, समाप्ति समय द्वारा क्रमबद्ध क्रमबद्ध सूची (या एवीएल पेड़) का उपयोग करके, और लगातार सूची की सूची (अनक्यू) पढ़ना। अगर पाठक को पता चलता है कि समय समाप्त हो गया है, तो यह सो जाता है (समय समाप्त हो गया है)। इस तरह शुद्धता 10s एमएस के भीतर नियंत्रित किया जा सकता है।

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^