कोर डेटावेब और मोबाइल

Session Management

Sessions को अपने आप समाप्त होने वाली अवधि के साथ रखें, और बिना कोई index बनाए उन्हें user, role या device के हिसाब से खोजें या रद्द करें।

lookup, user के sessions खोजने के लिए
1
secondary indexes
0
expiry, tags समेत
Auto
कदम 1 में से 5
तीन devices पर sign in करें

हर device को 30 मिनट की expiry वाला अपना session मिलता है।

उदाहरण सेशनplaying
# तीन devices पर sign in करें
hotkv> SET session:9f2c "{\"user\":42}" EX 1800
OK

असली HotKV कमांड और उदाहरण रिस्पॉन्स के साथ एक एनिमेटेड वॉकथ्रू। किसी भी कदम पर क्लिक करके वहां पहुंचें। कमांड और रिस्पॉन्स अंग्रेज़ी में ही रहते हैं, ठीक वैसे जैसे आप HotKV में टाइप करते और देखते हैं।

समस्या

Sessions छोटे, बार-बार इस्तेमाल होने वाले और कम समय के होते हैं, जो इन-मेमोरी store के लिए सही बैठता है। मुश्किल बाद में आती है, जब support को किसी user को हर जगह से sign out करना होता है, या security को किसी role या device के सारे sessions खत्म करने होते हैं। साधारण key-value store किसी session को सिर्फ़ उसकी id से खोज सकता है।

HotKV इसे कैसे संभालता है

HotKV हर session को expiry के साथ एक key की तरह रखता है और आपको उसे उस user, role या device से tag करने देता है जिससे वह जुड़ा है। Tags इंजन का हिस्सा हैं और key के साथ ही चले जाते हैं। इसलिए keys का समानांतर सेट संभालने की जगह आप एक lookup से सभी मेल खाते sessions की सूची ले सकते हैं या उन्हें रद्द कर सकते हैं।

कदम दर कदम

क्या होता है, कमांड दर कमांड

  1. 01

    तीन devices पर sign in करें

    हर device को 30 मिनट की expiry वाला अपना session मिलता है।

    SET session:9f2c "{\"user\":42}" EX 1800
  2. 02

    हर session को tag करें

    Session बनते ही उस पर user, role और device जोड़ दिए जाते हैं।

    TAG.SET session:9f2c user:42 role:admin device:ios
  3. 03

    सक्रिय रहने तक signed in रहें

    हर request expiry को refresh करती है, जिससे sliding timeout मिलता है।

    EXPIRE session:9f2c 1800
  4. 04

    User 42 के सभी sessions खोजें

    चोरी हुए laptop की रिपोर्ट आई है। एक lookup user के सारे sessions लौटा देता है।

    TAG.MEMBERS user:42
  5. 05

    हर जगह से sign out करें

    लौटी हुई keys को delete करें। उनके tags भी उनके साथ चले जाते हैं, और हर device sign out हो जाता है।

    DEL session:9f2c session:71aa session:0c8e
कहां फ़िट बैठता है

असली परिदृश्य

Banking और fintech apps

Security टीमें किसी compromised account के सारे sessions, या पुराने app version वाले हर device के sessions, एक ही कार्रवाई में खत्म कर देती हैं।

SaaS प्रोडक्ट

जब किसी admin का role हटाया जाता है, तो उस role से tag किया हुआ हर session एक साथ रद्द हो जाता है।

Streaming सेवाएँ

User tag के लिए TAG.MEMBERS के जवाब से हर account के एक साथ चलने वाले sessions गिनें और सीमित करें।

अंतर्निहित

आपको क्या मिलता है

अपने आप expiry

TTL पूरा होने पर sessions अपने आप गायब हो जाते हैं, और उनके tags भी उनके साथ चले जाते हैं।

EXEXPIRE

बिना index के lookup

किसी भी tag से, या एक साथ कई tags से, sessions खोजें।

TAG.MEMBERSTAG.INTER

Tags की जल्दी जाँच

TAG.COUNT और TAG.EXISTS बताते हैं कि किसी key पर क्या लगा है।

TAG.COUNTTAG.EXISTS

Login की भीड़ में भी तेज़

Session reads और writes parallel threads पर चलते हैं।

आम सवाल

किसी user को सिर्फ़ एक device से log out कैसे करूँ?

User tag और device tag के साथ TAG.INTER इस्तेमाल करें, फिर जो keys लौटें उन्हें delete कर दें।

Session की expiry होने पर उसके tag का क्या होता है?

Key के tags उसके साथ ही चले जाते हैं, expiry पर भी। Tags snapshots का हिस्सा नहीं होते, इसलिए server snapshot से restart हो तो उन्हें दोबारा लगाएँ।

क्या मैं हर account के एक साथ चलने वाले sessions सीमित कर सकता हूँ?

हाँ। User tag पर TAG.MEMBERS sessions की सूची देता है, इसलिए आप उन्हें गिन सकते हैं और sign in के समय सबसे पुराने को मना कर सकते हैं या खत्म कर सकते हैं।

संबंधित उपयोग के मामले

इसे अपने वर्कलोड पर आज़माएं

HotKV Redis प्रोटोकॉल बोलता है, इसलिए आप किसी मौजूदा क्लाइंट को इसकी ओर इंगित करके यही कमांड चला सकते हैं।