में चाबियों के लिए उपयोगकर्ता नाम या आईडी मैं सोच रहा था कि उपयोगकर्ता आईडी का उपयोग करने के लाभ केवल कुंजी के लिए अद्वितीय उपयोगकर्ता नाम का उपयोग करने के बजाय थे।रेडिस
- उपयोगकर्ता: USERNAME => {पासवर्ड: हैश, उम्र: 45}
- उपयोगकर्ता: 0 => {उपयोगकर्ता नाम: उपयोगकर्ता नाम, पासवर्ड: हैश, उम्र: 45}
ध्यान दें कि मैं उपयोगकर्ताओं को नाम से देखना चाहते हैं, इसलिए आईडी के लिए उपयोगकर्ता नाम से संबंधित कुंजी-मानों का दूसरा सेट आवश्यक है।
यह देखते हुए कि प्रत्येक उपयोगकर्ता नाम अद्वितीय है और इसे अल्फान्यूमेरिक होना चाहिए, क्या कोई विशेष कारण है कि यह आईडी सिस्टम का उपयोग करने के लिए फायदेमंद क्यों हो सकता है।
मुख्य कारण यह है कि मैं यह पूछता हूं क्योंकि मुख्य रूप से आईडी का उपयोग किया जाता है क्योंकि उन्होंने मेरे डेटाबेस में लुकअप टाइम्स को कम किया है, खासकर जब डेटाबेस को किसी तरह से सामान्यीकृत किया गया था। लेकिन रेडिस को यह लाभ नहीं मिला है और इसलिए मुझे आश्चर्य हुआ कि उपयोगकर्ता नामों के बजाय उपयोगकर्ता आईडी का उपयोग करने के अन्य कारण क्या हो सकते हैं।
किसी भी मदद के लिए धन्यवाद,
Pluckerpluck
पी.एस. रेडिस हैंडल हैंश के तरीके के कारण मैं वास्तव में दो तरीकों के बीच स्मृति अंतर के बारे में अनिश्चित हूं, इसलिए इस पर जानकारी अच्छी हो सकती है, हालांकि मैं जा सकता हूं और बाद में इसका परीक्षण कर सकता हूं।
उस परिदृश्य को इंगित करने के लिए धन्यवाद। बस एक त्वरित सवाल: अगर मैं आईडी का उपयोग करना चाहता था। इसके बाद मुझे उपयोगकर्ता नाम खोजने की अनुमति देने के लिए उपयोगकर्ता नाम-आईडी संबंधों की आवश्यकता होगी। क्या आपको लगता है कि एक क्रमबद्ध सेट (आईडी होना रैंक) ऐसा करने का एक अच्छा तरीका होगा? या इसके बजाय एक हैश? – Pluckerpluck
हैश दो कारणों से बेहतर है - ए) यह सॉर्ट किए गए सेट की तुलना में कम मेमोरी का उपयोग करता है, और बी) उपयोगकर्ताओं की कोई परिभाषित ऑर्डरिंग नहीं है, इसलिए अवधारणात्मक रूप से इसे सॉर्ट किए गए सेट का उपयोग करने में कोई समझ नहीं आता है। –
मैं उपयोगकर्ता नामों को इंडेक्स करने के लिए हैश का उपयोग करूंगा। वे स्मृति में जेसेट की तुलना में अधिक कॉम्पैक्ट हैं। एक जेसेट का उपयोग केवल तभी उपयोगी होगा यदि आपको नामों पर रेंज क्वेरी का समर्थन करना पड़ा ... –