System-Design

Redis का वापरायचं? इतिहास, वापराचे प्रकार आणि उत्तम पर्याय
“हे फक्त Redis मध्ये कॅश करा” — हे तुम्ही कोड रिव्ह्यूमध्ये, सिस्टम डिझाइन इंटरव्ह्यूमध्ये किंवा Stack Overflow च्या कमेंटमध्ये नक्कीच ऐकलं असेल. आता हे जवळपास एक प्रतिक्षिप्त क्रिया बनली आहे. पण Redis च का? चांगल्या इंडेक्ससह एखाद्या सामान्य डेटाबेसने का नाही, किंवा इतर कोणत्याही इन-मेमरी स्टोअरने? मी त्याचा इतिहास, आर्किटेक्चर आणि पर्यायांचं सध्याचं चित्र खोलवर तपासलं — आणि ही गोष्ट खरोखरच मेमपेक्षा कितीतरी जास्त रंजक आहे. Redis खरोखर काय आहे आधी एक गोष्ट स्पष्ट करूया. Redis फक्त एक कॅश नाही. ही तीच गैरसमज आहे जी लोकांना अडकवते. Redis म्हणजे REmote DIctionary Server [1], आणि हे एक इन-मेमरी डेटा स्ट्रक्चर स्टोअर आहे — म्हणजे ते डिस्कऐवजी RAM मध्ये डेटा ठेवतं. हाच एक निर्णय त्याच्या वेगाचं बहुतांश कारण स्पष्ट करतो.
फक्त HTTP च्या ऐवजी प्रत्येक पानासाठी एकच WebSocket का वापरू नये?
हा प्रश्न वारंवार का विचारला जातो हे मला समजतं. WebSocket उघडं राहतं, तुम्ही कोण आहात हे लक्षात ठेवतं, आणि सर्व्हरला तुम्ही पुन्हा पुन्हा विचारल्याशिवाय डेटा पाठवू देतं. मग एकच सतत चालू राहणारी पाईप उघडून काम भागत असताना आपण अजूनही एका पान लोडसाठी शेकडो वेगवेगळे HTTP रिक्वेस्ट का पाठवतो? खरं सांगायचं तर हा प्रश्न लोक समजतात त्यापेक्षा जास्त हुशार आहे — आणि उत्तर “कारण HTTP जास्त चांगलं आहे” असं नाही. ते यापेक्षा बरंच गुंतागुंतीचं आहे.