कंप्यूटर जगत या मशीन जगत में कैश अर्थात बारम्बार काम आने वाली जगह/सामान जो समय बचानेके लिए अपने पास थोड़ी में मात्रा में रख लिया जाता है जो मुख्य बड़े भण्डारण/गोदाम से इतर होता है। यह एक लाभ के लिए की प्रयोग में लायी गयी तकनीकी अवधारणा है जो कभी-कभी समस्या के रूप में भी भासती दीखती है।
Cache memory कैश स्मृति। अरे यार ब्राउज़र से कैश क्लियर करो! स्यात कैश की प्रॉब्लम है। विशेषत: कंप्यूटर तकनीकी के क्षेत्र में आप ये शब्द अनेक बार सुनते होंगे। इसे संक्षिप्त में सीधे cache/कैश भी कह दिया जाता है। यह असल में क्या है, क्या यह कोई समस्या है, ये क्यूँ प्रयोग में लायी जाती है? क्या ये आवश्यक है? इस लेख में इसे सरल शब्दों में समझाने का प्रयत्न करूँगा।
एक सामान्य सरल उदहारण लेते हैं। जब हम किसी आपण (दुकान, जनरल स्टोर) पर जाते हैं तो हम देखते हैं की विक्रेता ने पान-सुपारी-गुटखे, चिप्स, चॉकलेट्स आदि सामान थोड़ी-थोड़ी मात्रा में अपने काउंटर पर आगे अपने बैठने के स्थान के पास ही रखे होते हैं। हम ये भी जानते हैं कि उसकी आपण में ये सभी सामान केवल इतनी ही मात्रा में उपलब्ध हों ऐसा नहीं है। ये सभी सामान दूकान में पीछे अन्य स्थानों पर और अधिक मात्रा में भरे हुए हैं। परन्तु फिर भी वह बारम्बार विक्रय होने वाले कुछ सामानों को अल्प मात्रा में अपने पास ही रख लेता है। क्यूँ? उत्तर हम सब जानते हैं कि वह अपने क्रेता को कम समय में त्वरित सुविधा देने हेतु ऐसा करता है। स्यात आप समझ गए होंगे ये जो आगे उसने अपने पास कुछ मात्रा में बारम्बार बिकने वाली वस्तुएं रखी हैं यही उसकी ‘कैश‘ (स्थान/चीजें) हैं। क्यों? ग्राहक को त्वरित पूर्ति और दुकानदार को बार-बार आपण में इधर-उधर एक-एक वास्तु लेने जाना पड़े तो उसे शारीरिक दुविधा के साथ-साथ समय भी अधिक व्यय होता है।
ठीक यही अवधारणा तकनीकी (और स्यात अन्य क्षेत्रों में भी) प्रयोग में लायी जाती है। प्रत्येक सॉफ्टवेयर या हार्डवेयर को भी निर्माण करते समय उनके स्तर के हिसाब से कुछ भण्डारण/मेमोरी/स्मृति/स्टोरेज के लिए भाग/स्थान निश्चित कर दिया जाता है।
हम जानते हैं कि अंतरजाल (internet) जब आपका वेब ब्राउज़र कोई रिक्वेस्ट भेजता है तो सर्वर उसके आधार पर मांगी गयी सूचना (जो वेब पृष्ठ के रूप में हमें मिलती है) भेजता है। प्रत्येक वेबसाइट कुछ मानक कोडिंग लाइब्रेरीज (मुख्यत: JavaScript, css आदि) का प्रयोग करती है। जब आप नित्य भिन्न-भिन्न वेबसाइटस को देखते हैं वे सभी वेबसाइट उन मानक लाइब्रेरीज का प्रयोग करती हैं तो आपका ब्राउज़र जानता है की जो लाइब्रेरी (कोड) सबमें सामान है तो उस के लिए बार-बार रिक्वेस्ट सर्वर पर भेजकर उसे सर्वर से लाकर ब्राउज़र में लोड करना समय को व्यर्थ करना है। तो वह ऐसे कोड को अपने पास छोटे से भण्डारण के रूप में सुरक्षित कर लेता है। जब किसी वेबसाइट से उस जैसे किसी कोड के लिए रिक्वेस्ट की जाती है तो वेब ब्राउज़र सर्वर से उसे मंगाने के बजाय अपने भण्डारण में सुरक्षित कोड की प्रतिलिपि (जो आपके कंप्यूटर पर ही सुरक्षित की जाती है) को लोड कर देता है। अर्थात अनावश्यक लगने वाले समय की बचत करके आपको फास्ट एक्सपीरियंस देने हेतु ऐसा किया जाता है। इस बचे हुए समय में वह अन्य अनुपलब्ध डाटा को सर्वर से मंगवा लेता है।
अर्थात जो बार-बार चाहिए और एक ही सामान कोड है उसे अपने पास आपके कंप्यूटर की भण्डारण का प्रयोग करके जमा कर लिया और ऐसी सूचना जो प्रत्येक वेबसाइट की अपनी (या अलग) है केवल वही (उतनी ही) सर्वर से मंगवाई जाती है।
दूसरी ओर ठीक ऐसा ही कार्य एक वेब सर्वर भी करना शुरू कर देता है। एक वेब सर्वर पर एकाधिक वेबसाइट होस्ट हो सकती हैं। उस पर आने वाली सभी रिक्वेस्ट को वह निरिक्षण करता रहता है और उसका हिसाब-किताब रखना प्रारम्भ कर देता है। सर्वर भी एक कंप्यूटर ही होता है और होस्टेड वेबसाइट सूचना के रूप में उसकी हार्ड-डिस्क पर सुरक्षित (save) होती हैं। सर्वर कंप्यूटर बारम्बार मिलने वाली रिक्वेस्ट और हार्ड-डिस्क से निकालकर भेजे जाने वाली (होस्टेड वेबसाइट की) सूचना को गणितीय रूप से समझने का प्रयास करना प्रारम्भ कर देता है। जब उसे लगता है की कोई सूचना (वेबसाइट, वेब पृष्ठ) उसके यहाँ से वेब-ब्राउज़र को भेजी जा रही है और उस सूचना में कभी परिवर्तन नहीं होता या बहुत समय बाद कभी-कभार परिवर्तन होता है तथा अधिक बार मांगी जा रही है तो सर्वर कंप्यूटर भी अपने हार्ड-डिस्क में संचित स्थान पर उसे ढूँढने के लिए जाना व्यर्थ समझ उसकी प्रतिलिपि प्रवेश द्वार (जहाँ वह पहले रिक्वेस्ट को पहचानने आदि का कार्य करता है) पर एक छोटे भण्डारण के रूप में रख लेता है। तो ये सर्वर साइड कैश स्थान हो जाता है। आपको लग सकता है की हार्ड-डिस्क कंप्यूटर में ही तो होती है या यह कोई दूर स्थित वस्तु तो नहीं है। परन्तु हमें समझना होगा विद्युत् गति से कार्य करने वाली मशीन के लिए विद्युत् तंतुओं के द्वारा यात्रा करके जाने में यदि नेनो स्तर पर भी समय की बचत हो तो कार्य क्षमता में तुलनात्मक रूप से अत्यधिक अंतर पड़ सकता है।
अब वेब ब्राउज़र से आने वाली रिक्वेस्ट को सर्वर प्रवेश द्वार पर चेक कर लेता है यदि ये ऐसी सूचना है जो अत्यधिक और बारम्बार मांगी जा रही जिसमें परिवर्तन भी अत्यल्प (अर्थात नित्य परिवर्तनशील नहीं) है तो वह उसकी सूचना हार्ड-डिस्क तक जाकर लाने के बजाय प्रवेश द्वार पर रखी कैश से उठाकर वही से वेब-ब्राउज़र को वापस प्रतिलिपि सूचना भेज देता है।
तो जब वेब-ब्राउज़र का कैश फटाफट आपके कंप्यूटर से से उठा लिया जाता है और सर्वर भी अपने हार्ड-डिस्क पर जाने के बजाय प्रवेश द्वार से ही कैश से सूचना उठा लेता है तो इन सभी क्रियाओं की कुल समय बचत चाहे थोड़ी सी ही हो, कुछ नेनो, माइक्रो-सेकंड्स की बचत करके यूजर (अर्थात आप) को कम समय में सूचना उपलब्ध करवा दी जाती है। इसे ही आप अधिक स्पीड से वेबसाइट लोड होने का आनंद समझते हैं।
हमारे कंप्यूटर के मैंनबोर्ड/मदरबोर्ड पर जो प्रोसेसर होता है उसमें भी विद्युत् रूप से बाइनरी निर्देश लगातार चलते रहते हैं। वहां पर भी बारम्बार और समान निर्देश करोड़ों की संख्या में चलते रहने पर प्रोसेसर को भी कैश स्मृति के लिए एक जगह दी जाती है जिससे वह बार-बार कंप्यूटर के अन्य भागों यथा रैम, हार्ड-डिस्क से सूचना मांगने नहीं जाए। यूँ तो कंप्यूटर मशीन विद्युत् गति से कार्य करती है परन्तु कैश जैसी व्यवस्था से माइक्रो/नैनो स्तर पर भी काफी समय की बचत कर ली जाती है जो कंप्यूटर की कार्य करने की गति को और अधिक तीव्र करने में लाभकारी सिद्ध होती है।
वास्तव में कंप्यूटर या इस जैसी मशीनों में सभी युक्तिओं (components) में जहाँ सम्भव होता है कैश स्मृति/भण्डारण जैसी अवधारणा का प्रयोग कर कार्यक्षमता को बढ़ाने का प्रयास किया जाता है। जहाँ भी सम्भव होता है इसका प्रयोग किया ही जाता है। तो अब आप समझ गए होंगे की कैश क्या है और इसका लाभ क्या है।
तो कैश क्लियर करने वाली समस्या क्या है?
जी, जब आपको कोई कहता है की यार वेब-ब्राउज़र का कैश क्लियर करो, कैश की समस्या है? तो समस्या क्या है? आपको अब तक कुछ-कुछ अनुमान हो गया होगा। वेब-ब्राउज़र के सन्दर्भ में बताता हूँ। मान लीजिये कोई वेबसाइट आप नित्य प्रयोग में लाते हैं और वह नित्य आपको कोई सूचना देती है जो लगभग सदैव एक जैसी ही होती है। और जिसे ब्राउज़र और सर्वर दोनों अपने कैश के द्वारा आपको भेज रहे हैं। अब यदि किसी दिन वेबसाइट मालिक ने उस पृष्ठ विशेष पर कोई तकनीकी परिवर्तन किया हो तो? वेब ब्राउज़र और सर्वर तो उस रिक्वेस्ट को फिर से अपने कैश से उठा कर पुराने वाली प्रतिलिपि सूचना भेज देंगे। अर्थात सर्वर के हार्ड-डिस्क पर सूचना में परिवर्तन हो गया परन्तु आपको कैश के कारण अब भी पुरानी सूचना मिल रही है।
इस नवीन सूचना को अद्यतन करने के लिए आपको ब्राउज़र का कैश खाली (clear) करने को कहा जाता है। एक बार कैश खाली होते ही ब्राउज़र अपने आप उसे स्थानीय कंप्यूटर पर न पाकर सर्वर से लाने के लिए विवश हो जाता है और आपको नवीन जानकारी अद्यतन हो लोड होकर मिल जाती है। जैसे Ctrl+F5 कीबोर्ड कुञ्जी वेब-ब्राउज़र में यही कार्य करती है। इसे फोर्स रीलोड भी कहते हैं। और सर्वर! उसको फ़ोर्स कैसे करें। इसका जवाब यही है सर्वर की कैश को अद्यतन करने के लिए आप कुछ नहीं कर सकते हैं। सामान्यत: सर्वर अपनी गणितीय गणनाओं के द्वारा इसे कुछ समय में अद्यतन कर लेता है। इसलिए आपको कभी-कभी कुछ समय बाद स्वत: ही सूचना अद्यतन होती दिखाई देती जिसे आप कुछ देर पहले बार-बार रीलोड करके भी नहीं प्राप्त कर पा रहे थे।
कई बार ऐसा भी होता है की सर्वर कैश को नवीन सूचना के साथ निश्चित समय में अद्यतन नहीं कर पाता है या अधिक समय लगा देता है, और कुछ सूचनाएँ किसी निश्चित समय पर मिलनी आवश्यक होती हैं। ऐसी स्थिति में वेबसाइट/सर्वर मालिक इसके लिए स्वयं जिम्मेदार/जागरूक होते हैं एवं समय पर सूचना अद्यतन हो सके उसके लिए वे उचित तकनीकी कार्य निष्पादित कर लेते हैं।
तो अब आप समझ गए होंगे कंप्यूटर जगत या मशीन जगत में कैश अर्थात बारम्बार काम आने वाली जगह/सामान जो समय बचाने के लिए अपने पास थोड़ी में मात्रा में रख लिया जाता है जो मुख्य बड़े भण्डारण/गोदाम से इतर होता है। यह एक लाभ के लिए की प्रयोग में लायी गयी तकनीकी अवधारणा है जो कभी-कभी समस्या के रूप में भी भासती दीखती है।
इस अवधारणा को आप अन्य स्थानों पर भी सम्बंधित कर सकते हैं। जैसे बैंक के रोजमर्रा के कार्य के लिए आवशयक नगद मुद्रा को कॅश काउंटर का व्यक्ति दिन के समय वहीँ अपने केबिन/काउंटर में रखता है। प्रत्येक लेन-देन के लिए वह नोट लाने/रखने के लिए मुख्य तिजोरी या चेस्ट तक नहीं जाता। दूकानदार बड़ा गोदाम अलग रख सकता है और ज्यादा मांग वाली वस्तुएं ही अपनी आपण पर रोजमर्रा के विक्रय हेतु रखता है। आवश्यक ही हो तो वह गोदाम से मंगवा भी लेता है परन्तु प्रत्येक ग्राहक के लिए प्रत्येक बार ऐसा करना समय नष्ट करना ही हुआ ना।
विंडोज ऑपरेटिंग सिस्टम के डेस्कटॉप पर बार-बार राईट क्लिक कर के मेनू में ‘Refresh’ बटन क्लिक करने Obsessive Compulsive Disorder को प्रदर्शित करते हुए कभी हमने सोचा कि यह भी कैश से ही जुड़ा हुआ मामला है। जब आपको लगता है कंप्यूटर के स्मृति में कुछ अटक गया है, भिन्न कमाण्ड देने पर भी एक ही कार्य को करता जान पड़ रहा है या हैंग होए जा रहा है तो इसकी स्मृति को क्लियर करें, रिफ्रेश करें। ठीक वैसे ही जैसे ब्राउज़र रिफ्रेश करते हैं।
तनिक अपने आस-पास देखें तो, कैश तकनीकी या अवधारणा का प्रयोग दैनिक जीवन या कार्यालय में स्यात आप कई जगह कर रहे हों।