2013-02-10 4 views
9

में ओपन सोर्स कैश के लिए अनुशंसा मुझे सी ++ में कैशिंग लाइब्रेरी की आवश्यकता है जो Guave's लोडिंग कैश की तरह थोड़ा काम करता है।सी ++

यह शामिल होना चाहिए निम्नलिखित:

  • गैर पहुँच अवरोधित
  • समय आधारित बेदखली
  • आकार के आधार बेदखली

मैं एसटीएल, बूस्ट को देखा और चारों ओर खोज की है, लेकिन मैं इस कार्यक्षमता के साथ कुछ भी खोजने में असमर्थ हूं।

+0

मुझे स्वीकार करना होगा कि मैं तुरंत यहां memcached सोचता हूं, हालांकि यह एकाधिक सर्वर साझा करने के लिए अधिक उपयुक्त है। मुझे नहीं पता कि एक इन-प्रोसेस संस्करण है या नहीं। –

+0

आपको वास्तव में एक हैश तालिका और दो दोगुनी लिंक्ड सूचियों की आवश्यकता है ताकि कैश को कुशलतापूर्वक कार्यान्वित किया जा सके। एलआरयू कैश को कार्यान्वित करने के तरीके के बारे में अपने ऑपरेटिंग सिस्टम बुक या वेब पर देखें, फिर आप आकार और समय के आधार पर बेदखल करने के लिए एक समाधान निकाल सकते हैं। – selbie

+2

@selbie, मुझे पता है कि मैं इसे स्वयं लिख सकता हूं, लेकिन आदर्श रूप में मैं एक परिपक्व, अच्छी तरह से परीक्षण की लाइब्रेरी खोजना चाहता हूं जिसका उपयोग कई अलग-अलग परियोजनाओं द्वारा किया गया है और "युद्ध कठोर" है। – user1610694

उत्तर

5

POCO देखें। मेरा मानना ​​है कि इसकी caching framework आपकी आवश्यकताओं के अनुरूप होगी।

ExpireLRUCache<int, string> cache(
           1024, // cacheSize 
           600000 // expiration (10 minutes) 
); 

cache.add(1, "Cached string 1"); 
cache.add(10, "Cached string 10"); 

Sleep(601000); 

Shared_ptr<string> pVal = cache.get(10); 
assert(pVal.isNull()); // the element has expired 
+1

यह मुझे धन्यवाद की आवश्यकता के करीब आता है। मुझे इसे अवरुद्ध करने की भी आवश्यकता है, लेकिन शायद मुझे इसे खुद प्रदान करना होगा। मैं आशा के लिए अब खुला प्रश्न छोड़ दूंगा कि यह पहले से मौजूद हो सकता है। – user1610694

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^