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-cacheTypeScript के लिए टाइप्स पहले से ही पैकेज में शामिल हैं, @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 में सरल कैशिंग परिदृश्यों के लिए एक उत्कृष्ट विकल्प है, जहाँ गति और न्यूनतम कॉन्फ़िगरेशन महत्वपूर्ण हैं।
पुस्तकालय में भी
PHP में GraphQL: API बनाने के लिए webonyx/graphql-php और Lighthouse लाइब्रेरीज़
SwiftFormat Swift: पूर्ण गाइड उदाहरणों के साथ
SpriteKit Swift: पूर्ण गाइड उदाहरणों के साथ
iOS और macOS पर Swift में Excel के साथ काम करें: लाइब्रेरी और उदाहरण