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

उपसर्ग के साथ कुंजी संग्रहीत करना जो रेडिस में समाप्त हो जाती है

यह सीधे नहीं किया जा सकता है। आप संपूर्ण रूप से hset पर समाप्ति जोड़ सकते हैं, लेकिन अलग-अलग फ़ील्ड पर नहीं। अगर आप ऐसा करना चाहते हैं, तो आप r.expire('name', time) . पर कॉल कर सकते हैं , जहां time समाप्ति तक सेकंड की संख्या है।

एक विकल्प के रूप में, आप set . का उपयोग कर सकते हैं hset . के बजाय :

for i in range(10):
    r.set('name:' + str(i), i, ex=time_to_expire_s)

यह कुछ कार्यक्षमता को हटा देगा, क्योंकि (उदाहरण के लिए) आपके पास 'नाम:' से शुरू होने वाली सभी कुंजियों को सूचीबद्ध करने का एक अच्छा तरीका नहीं होगा, लेकिन यह आपको स्वतंत्र रूप से कुंजियों के लिए समय सीमा समाप्त करने की सुविधा देगा।

दूसरे विकल्प के रूप में, आप समाप्ति तिथि को hset . के मानों में सेट कर सकते हैं . इसके लिए क्लाइंट साइड लॉजिक की आवश्यकता होती है, और Redis आपके लिए कोई निष्कासन नहीं करेगा; लेकिन आप कुछ ऐसा कर सकते हैं:

for i in range(10):
    r.hset(
        'name',
        i,
        json.dumps({ 'value': i, 'expiration': time.time() + time_to_expire_s })
    )

और फिर यदि आपने कभी ऐसा मान पढ़ा है जिसकी समाप्ति अतीत में है, तो आप इसे कैश मिस मानते हैं। यदि आप स्मृति को मुक्त करने के लिए कुंजियों को समाप्त करने का प्रयास कर रहे हैं, तो यह आपकी मदद नहीं करेगा, लेकिन यदि आपका लक्ष्य किसी प्रकार की शुद्धता के कारण कुंजियों की समय सीमा समाप्त करना है, तो यह आपके लिए काम कर सकता है।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. रेडिस डेटाबेस टीटीएल

  2. रेडिस डेटा संरचना अंतरिक्ष आवश्यकताएँ

  3. रेडिस अधिकतम खुली फ़ाइल क्यों सेट नहीं कर सकता

  4. रेडिस पुनरारंभ होने के बाद मैं रेडिस में लुआ स्क्रिप्ट क्यों नहीं चला सकता?

  5. रेडिस क्लस्टर से कनेक्शन विफल