इसका एक हिस्सा यहां उत्तर दिया गया है, लेकिन यह पूरी तरह से डुप्लिकेट नहीं है, क्योंकि आप अनुमत वर्णों के साथ-साथ सम्मेलनों के बारे में पूछ रहे हैं।
जहाँ तक Redis कुंजियों में मान्य वर्ण का प्रश्न है , मैनुअल इसे पूरी तरह से समझाता है:
<ब्लॉकक्वॉट>रेडिस कुंजियां बाइनरी सुरक्षित हैं, इसका मतलब है कि आप किसी भी बाइनरी अनुक्रम को कुंजी के रूप में उपयोग कर सकते हैं, "फू" जैसे स्ट्रिंग से जेपीईजी फ़ाइल की सामग्री तक। खाली स्ट्रिंग भी एक मान्य कुंजी है।
चाबियों के बारे में कुछ अन्य नियम:
बहुत लंबी कुंजी एक अच्छा विचार नहीं है, उदाहरण के लिए 1024 बाइट्स की एक कुंजी न केवल स्मृति-वार एक बुरा विचार है, बल्कि इसलिए भी कि डेटासेट में कुंजी के लुकअप के लिए कई महंगी कुंजी-तुलना की आवश्यकता हो सकती है। यहां तक कि जब हाथ में काम एक बड़े मूल्य के अस्तित्व से मेल खाना है, तो हैशिंग का सहारा लेना (उदाहरण के लिए SHA1 के साथ) एक बेहतर विचार है, खासकर मेमोरी और बैंडविड्थ के दृष्टिकोण से।
बहुत छोटी चाबियां अक्सर एक अच्छा विचार नहीं होती हैं। यदि आप इसके बजाय "उपयोगकर्ता:1000:अनुयायी" लिख सकते हैं तो "u1000flw" को एक कुंजी के रूप में लिखने का कोई मतलब नहीं है। उत्तरार्द्ध अधिक पठनीय है और मुख्य वस्तु और मूल्य वस्तु द्वारा उपयोग किए जाने वाले स्थान की तुलना में जोड़ा गया स्थान मामूली है। जबकि छोटी कुंजियाँ स्पष्ट रूप से थोड़ी कम मेमोरी की खपत करेंगी, आपका काम सही संतुलन खोजना है।
एक स्कीमा के साथ रहने का प्रयास करें। उदाहरण के लिए "ऑब्जेक्ट-टाइप:आईडी" एक अच्छा विचार है, जैसा कि "उपयोगकर्ता:1000" में है। डॉट्स या डैश अक्सर बहु-शब्द फ़ील्ड के लिए उपयोग किए जाते हैं, जैसे "comment:1234:reply.to" या "comment:1234:reply-to"।
अधिकतम अनुमत कुंजी आकार 512 एमबी है।