TypeScript में कैशिंग: node-cache लाइब्रेरी

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

node-cache क्या है और इसकी आवश्यकता क्यों है?

लाइब्रेरी node-cache Node.js के लिए एक सरल और तेज़ कैशिंग सिस्टम है, जो TypeScript में लिखा गया है। यह डेटा को मेमोरी (in-memory cache) में स्टोर करने की अनुमति देता है, जिससे बार-बार अनुरोधित जानकारी (जैसे डेटाबेस क्वेरी के परिणाम, API प्रतिक्रियाएँ, गणनाएँ) तक पहुँच काफी तेज़ हो जाती है। TypeScript में, node-cache सख्त टाइपिंग प्रदान करता है, जो कोड को अधिक पूर्वानुमानित और सुरक्षित बनाता है।

सर्वर पर लोड कम करने, प्रतिक्रिया समय घटाने और बार-बार होने वाले कार्यों में संसाधनों की बचत के लिए कैशिंग आवश्यक है। Node-cache छोटे और मध्यम प्रोजेक्ट्स के लिए एकदम सही है, जहाँ वितरित कैशिंग (जैसे Redis) की आवश्यकता नहीं है, लेकिन एक हल्के in-memory कैश की ज़रूरत है।

इंस्टॉलेशन

npm या yarn के माध्यम से पैकेज इंस्टॉल करें:

npm install node-cache
# या
yarn add node-cache

TypeScript के लिए टाइप्स पहले से ही पैकेज में शामिल हैं, @types को अलग से इंस्टॉल करने की आवश्यकता नहीं है।

मुख्य फ़ंक्शन

  • set(key, value, ttl) — वैकल्पिक समय-सीमा (TTL) सेकंड में के साथ कुंजी द्वारा मान सहेजता है।
  • get(key) — कुंजी द्वारा मान प्राप्त करता है। यदि कुंजी मौजूद नहीं है या समाप्त हो गई है तो undefined लौटाता है।
  • del(key) — एक या अधिक कुंजियाँ हटाता है।
  • has(key) — कैश में कुंजी की उपस्थिति की जाँच करता है।
  • flushAll() — पूरे कैश को साफ़ करता है।
  • getStats() — सांख्यिकी (कुंजियों की संख्या, हिट, मिस) लौटाता है।

TypeScript में कोड का उदाहरण

import NodeCache from 'node-cache';

// डिफ़ॉल्ट TTL 60 सेकंड के साथ कैश का एक इंस्टेंस बनाएँ
const myCache = new NodeCache({ stdTTL: 60 });

// टाइप किया गया मान
interface User {
id: number;
name: string;
}

// डेटा सहेजें
const user: User = { id: 1, name: 'Alice' };
myCache.set('user_1', user);

// डेटा प्राप्त करें
const cachedUser = myCache.get<User>('user_1');
if (cachedUser) {
console.log(cachedUser.name); // Alice
} else {
console.log('कैश खाली है');
}

// उपस्थिति की जाँच
console.log(myCache.has('user_1')); // true

// हटाना
myCache.del('user_1');

// पूरे कैश को साफ़ करना
myCache.flushAll();

node-cache का उपयोग कब करें

  • बार-बार अनुरोधित डेटा: उदाहरण के लिए, देशों की सूची, मुद्रा दरें, कॉन्फ़िगरेशन।
  • भारी गणनाओं के परिणाम: किसी महँगे ऑपरेशन के परिणाम को कुछ सेकंड के लिए कैश करना।
  • API गेटवे: देरी और सीमाओं को कम करने के लिए बाहरी API के उत्तरों को कैश करना।
  • सत्र: सत्र डेटा का अस्थायी भंडारण (यदि स्थायित्व की आवश्यकता नहीं है)।

यदि आपको कई सर्वरों के बीच वितरित कैशिंग की आवश्यकता है तो node-cache से बचें — ऐसे में Redis का उपयोग करना बेहतर है। यह बड़ी मात्रा में डेटा (1-2 GB से अधिक) के लिए भी उपयुक्त नहीं है, क्योंकि यह रैम में संग्रहीत होता है।

Node-cache TypeScript में सरल कैशिंग परिदृश्यों के लिए एक उत्कृष्ट विकल्प है, जहाँ गति और न्यूनतम कॉन्फ़िगरेशन महत्वपूर्ण हैं।

अनुशंसाएँ