2011-04-05 13 views
17

मुझे पता है कि apc_store() कुंजी को ओवरराइट करता है यदि यह पहले से मौजूद है, तो मुझे अंतर पता है, मेरा प्रश्न बस है: बेहतर तरीका/सर्वोत्तम अभ्यास क्या है?apc_add() बनाम apc_store()

उत्तर

36

उन दो कार्यों के बीच एकमात्र अंतर यह है कि apc_add() किसी मौजूदा प्रविष्टि को ओवरराइट नहीं करेगा।
apc_store(), दूसरी तरफ, मौजूदा प्रविष्टि को ओवरराइट कर देगा।

तो, apc_add() और apc_store() के बीच, आपको किस का उपयोग करना चाहिए?
अच्छा, यह सब आपकी आवश्यकताओं पर निर्भर करता है: क्या आप चाहते हैं कि मौजूदा प्रविष्टि ओवरराइट हो या नहीं?

+0

इस अंतर का परिणाम समवर्ती वातावरण में प्रमुख प्रभाव हो सकता है: अत्यधिक लॉकिंग, जिसके परिणामस्वरूप अत्यधिक उच्च लेटेंसी या क्रैश होते हैं (मैंने इससे संबंधित एक और जवाब जोड़ा है) – etov

1

रेली उस तर्क पर निर्भर करता है जिस पर आपको आवेदन करने की आवश्यकता है, क्या आपको कुंजी को ओवरराइट करने की आवश्यकता है या नहीं? यह सब आप पर निर्भर है ।

+0

खैर .. चर अधिलेखित मुझे कोड गंध की याद दिलाता है। –

+1

फिर आपकी याद में एक पृष्ठ गलती है। – DanMan

1

आपको apc_add() की आवश्यकता है यदि आप एक समवर्ती वातावरण में एक परमाणु काउंटर को लागू करना चाहते हैं। मुख्य उपयोग-मामले आईएमओ है।

1

@ पास्कल मार्टिन लिखने के अलावा, उनके बीच एक बड़ा व्यावहारिक अंतर है।

भारी समवर्ती वातावरण में, उदा। apache में उपयोगकर्ता ऑब्जेक्ट्स के लिए एपीसी का उपयोग करते समय, apc_store के उपयोग से apc time bomb (लिंक 2007 से है लेकिन अभी भी प्रासंगिक है!), जबकि apc_add इस समस्या को कम करता है।

यह भी देखें: https://serverfault.com/questions/342295/apc-keeps-crashing

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