मेरा उपयोग केस एक सतत डीबी में संग्रहीत डेटा पर एक मेमोरी कैश को बनाए रखना है।जावा में समय-समय पर ताज़ा कैश को लागू करना
मैं यूआई पर प्रविष्टियों की सूची/मानचित्र को पॉप्युलेट करने के लिए डेटा का उपयोग करता हूं। किसी भी समय, यूआई पर प्रदर्शित डेटा जितना संभव हो उतना अपडेट किया जाना चाहिए (अच्छी तरह से यह कैश की ताज़ा आवृत्ति द्वारा किया जा सकता है)।
नियमित कैश कार्यान्वयन और इस विशेष कैश के बीच प्रमुख अंतर यह है कि इसे नियमित अंतराल पर सभी तत्वों के थोक ताज़ा करने की आवश्यकता होती है और इसलिए एलआरयू प्रकार के कैश से काफी अलग होता है।
मुझे जावा में यह कार्यान्वयन करने की आवश्यकता है और यदि कोई मौजूदा ढांचा है, तो इसका उपयोग किया जा सकता है जिसका उपयोग इसे चारों ओर बनाने के लिए किया जा सकता है।
मैंने Google Guava कैश लाइब्रेरी की खोज की है लेकिन यह थोक रीफ्रेश के बजाय प्रति प्रविष्टि ताज़ा करने के लिए अधिक उपयुक्त है। कोई आसान एपीआई नहीं है जो पूरे कैश पर रीफ्रेश करे।
किसी भी मदद की अत्यधिक सराहना की जाएगी।
इसके अलावा, यदि रीफ्रेश करने के लिए वृद्धि करना संभव है, तो यह बहुत अच्छा होगा क्योंकि पूरे कैश को ताज़ा करते समय केवल एक ही सीमा उत्पन्न होती है, यदि कैश आकार में बहुत बड़ा है, तो स्मृति ढेर कम से कम दो बार होना चाहिए नई प्रविष्टियों को लोड करने और पुराने मानचित्र को नए के साथ बदलने के लिए कैश का आकार। यदि कैश बढ़ता जा रहा है या एक चंकित ताज़ा है (बराबर आकार में ताज़ा करें) यह बहुत अच्छा होगा।
@ jtahlborn- बल्कलोडर एपीआई (http://ehcache.org/documentation/apis/bulk-loading) EhCache का सहायक है लेकिन यह बहुत अच्छा होगा अगर उसने रीफ्रेशटाइम या आवधिक अंतराल समय विकल्प प्रदान किया हो, जहां यह स्वयं प्रबंधित होगा कैश रीफ्रेश के लिए शेड्यूलिंग। वैसे भी, यह हमेशा बाहरी शेड्यूलर के माध्यम से हासिल किया जा सकता है और समय-समय पर थोक लोडिंग एपीआई का आह्वान कर सकता है। जवाब के लिए धन्यवाद। –
ईएचकेशे के लिए एक नज़र डालें: http://www.ehcache.org/documentation/3.3/thread-pools.html और http://terracotta.org/documentation/4.1/bigmemorymax/api/bulk-loading – Aliuk
लेकिन। समय-समय पर लाइव कैश से तत्व को हटा देता है? यह वही नहीं है जैसा आपने यहां लिखा है - "स्वचालित रूप से पुनः लोड करना" – javagirl