एशैच और जावा

मैं बड़े पैमाने पर डेटा स्टोर करने के लिए ehCache का उपयोग कर रहा हूँ। इस कैश को हर सेकेंड में लगभग 3 बार एक्सेस किया जाता है और इसे अद्यतित रखा जाना चाहिए। मेरे पास एक धागा है जो चलता है जो डाटाबेस से कैश के लिए हर मिनट एक अलग कैश (अलग कैशमैनगर) में आवश्यक डेटा को पुनर्प्राप्त करता है। मैं क्या करना चाहता हूं, नए कैश से डेटा की सामग्री को उस कैश में कॉपी करें जिसे हर सेकेंड को त्वरित, भरोसेमंद और सिंक्रनाइज़ तरीके से एक्सेस किया जा रहा है। (उदा। मौजूदा कैश में गुजरने वाली प्रतिस्थापन विधि को कॉल करें, और नया कैश और नया कैश जल्दी और सुरक्षित रूप से अपडेट करें)

क्या ehCache में ऐसा करने के लिए कोई रास्ता है?

कोई भी मदद बहुत ही सराहनीय होगी।

धन्यवाद डेमियन

0

2 उत्तर

ऐसा लगता है कि आप किसी समस्या के जटिल समाधान की तलाश में हैं, ehcache आउट-ऑफ-द-बॉक्स हल करता है।

आपको केवल एक कैश प्रबंधक की आवश्यकता है। एक मिनट में फ्लश करने के लिए इसे कॉन्फ़िगर करें। यदि आवश्यकता हो, तो एक थ्रेड बनाकर ऐसा करें जो एक मिनट में कैश को फ्लश करता है।

जब आप कैश से कुछ पुनर्प्राप्त करने का प्रयास करते हैं और यह डेटा फिर से लोड नहीं होता है। इस कैश पुनर्प्राप्ति बिट को एक सिंक्रनाइज़ विधि या ब्लॉक में रखें यदि आप यह सुनिश्चित करना चाहते हैं कि कैश ब्लॉक पॉपुलर हो रहा है।

0
जोड़ा
हाय स्टीव उत्तर के लिए धन्यवाद यह उपयोगी है। मेरी एकमात्र चिंता यह है कि यदि उपयोगकर्ता एक अनुरोध सबमिट करता है और जिस आइटम को वे ढूंढ रहे हैं वह वर्तमान में लोड हो रहा है, तो क्या इससे धीमी नतीजे नहीं आएंगे? धन्यवाद डेमियन
जोड़ा लेखक Damien, स्रोत
हाँ, यह उस स्थिति में थोड़ा धीमा हो सकता है। क्या आप इसे जितनी जल्दी हो सके इसे बनाने के लिए डेटा की लोडिंग को भी ट्यून कर सकते हैं?
जोड़ा लेखक Steve McLeod, स्रोत

+1 को स्टीव मैकिलोड पर +1 करें।

See SelfPopulatingCache

मेरा मानना ​​है कि यह बिल्कुल जो आप चाहते हैं, और जल्दी से करेंगे।

यदि आप अभी भी दो कैश बनाए रखना चाहते हैं, तो यह जाने के लिए अभी भी है। बस अपने कोड से बनाए गए कैश से कैशफ़ैक्टरी उदाहरण कैश किए गए मानों को वापस करें।

0
जोड़ा