मैंने रेडिस वेबसाइट को देखा है, और पाया है कि रेडिस को मल्टी-कोर सीपीयू के लिए डिज़ाइन नहीं किया गया है। मेरा प्रश्न है, ऐसा क्यों है?
यह एक डिज़ाइन निर्णय है।
<ब्लॉकक्वॉट>रेडिस एपोल/केक्यू के साथ सिंगल-थ्रेडेड है और I/O संगामिति के संदर्भ में अनिश्चित काल तक स्केल करता है। [email protected] (रेडिस के निर्माता)
ईवेंट-संचालित दृष्टिकोण चुनने का एक कारण यह है कि सिंक्रनाइज़ेशन धागे के बीच सॉफ्टवेयर (कोड जटिलता) और हार्डवेयर स्तर (संदर्भ स्विचिंग) दोनों में लागत आती है। इसमें जोड़ें कि रेडिस की अड़चन आमतौर पर नेटवर्क . है , सीपीयू नहीं। दूसरी ओर, सिंगल-थ्रेडेड आर्किटेक्चर के अपने फायदे हैं (उदाहरण के लिए परमाणुता की गारंटी)।
इसलिए इवेंट लूप कुशल . के लिए एक अच्छे डिज़ाइन की तरह लगते हैं &स्केलेबल रेडिस जैसी प्रणाली।
<ब्लॉकक्वॉट>इसके अलावा, यदि हां, तो हम मल्टी कोर सीपीयू पर सीपीयू संसाधनों के साथ रेडिस का 100% उपयोग कैसे कर सकते हैं।
कई कोर पर स्केल करने के लिए रेडिस दृष्टिकोण शार्डिंग . है , ज्यादातर एक साथ Twemproxy के साथ।
हालांकि, अगर किसी कारण से आप अभी भी एक बहु-थ्रेडेड दृष्टिकोण का उपयोग करना चाहते हैं, तो थ्रेडिस पर एक नज़र डालें, लेकिन सुनिश्चित करें कि आप इसके लेखक के प्रभाव को समझते हैं (उदाहरण के लिए, आप इसे प्रतिकृति मास्टर के रूप में उपयोग नहीं कर सकते हैं)।पी>