2009-01-13 18 views
11

मैं उपयोगकर्ता चरों को कैश करने के लिए APC का उपयोग कर रहा हूं (apc_store/apc_fetch आदेशों के साथ)। मैंने "apc.enable_cli = 1" विकल्प के साथ सीएलआई के लिए एपीसी भी सक्षम किया है। हालांकि, PHP का सीएलआई संस्करण अपाचे द्वारा उपयोग किए गए संस्करण से एक अलग एपीसी कैश तक पहुंचने लगता है।सीएलआई और वेब पर आने पर एक ही एपीसी कैश का उपयोग करने के लिए मैं PHP कैसे प्राप्त कर सकता हूं?

क्या सीएलआई और वेब इनवॉशंस दोनों के लिए एक ही कैश का उपयोग करने के लिए एपीसी को कॉन्फ़िगर करना संभव है?

उत्तर

11

संभव नहीं है .. कुछ पूछने का एकमात्र तरीका यह है कि memcacheD जैसे कुछ का उपयोग करना है। या अपने वेबसर्वर के माध्यम से चलाने के लिए आपको जो चाहिए उसे चलाएं। सीएलआई क्या चल रहा है कि आप एक cronjob के साथ एक वेब स्क्रिप्ट के माध्यम से नहीं चला सकते हैं?

+0

.. या इससे भी महत्वपूर्ण बात है - आपको क्लाइ स्क्रिप्ट पर उस तरह के प्रदर्शन अनुकूलन की आवश्यकता क्यों है? – troelskn

+0

बहुत सच .. वेब आम तौर पर उच्च प्रभाव/हिट होता है, और सीएलआई कॉल बंद करता है। – DreamWerx

+3

मुझे सीएलआई स्क्रिप्ट को कैश करने वाले एपीसी के बारे में परेशान नहीं है। मैं वेब और सीएलआई से एक ही एपीसी उपयोगकर्ता कैश तक पहुंचने में सक्षम होना चाहता हूं। यदि यह संभव नहीं है तो मुझे केवल सीएलआई से एक वेब स्क्रिप्ट कॉल करना होगा और इसे आवश्यक डेटा में पास करना होगा। सबसे सुरुचिपूर्ण समाधान नहीं है! –

1

एक CGI के रूप में अपने CLI फोन /path-to/cgi-sys/php5.cgi /home/name/crons/engine.php

+0

अच्छा विचार, लेकिन यह मेरे लिए CentOS (/ usr/bin/php-cgi) – ColinM

+0

पर काम नहीं करता है यह केवल तभी काम करेगा जब आप PHP (तेजी से) CGI चला रहे हों, अपाचे में mod_php के साथ नहीं (क्योंकि एपीसी है अपाचे प्रक्रियाओं के भीतर 'स्मृति)। – Mojah

4

आप shm उपयोग कर सकते हैं। यह तकनीक यूनिक्स साझा मेमोरी तक पहुंचने के लिए उधार देती है। आप शर्म में कुछ चर डाल सकते हैं और फिर किसी अन्य scritp में, यहां तक ​​कि किसी अन्य languaje में प्रोग्राम किया गया है, आप साझा चर प्राप्त कर सकते हैं।

shm_put_var और shm_get_var।

यह एपीसी की तुलना में धीमी है, लेकिन यह memcached, redis, आदि

मुझे आशा है कि यह आप में मदद मिलेगी, और मैं अपने अंग्रेजी के लिए माफी चाहता हूँ की तुलना में तेजी है ....

0

आप एक की आवश्यकता होगी PHP सर्वर में लिखा गया वेब सर्वर - एपीसी कैश केवल फोर्कड बाल प्रक्रियाओं द्वारा साझा किया जाता है। यदि आपके पास एक PHP वेबसर्वर था, तो आप एक मास्टर क्ली, init apc, कांटा शुरू कर सकते हैं और एक बच्चे की प्रक्रिया में वेब सर्वर लोड/चला सकते हैं, और कांटा और अपनी PHP क्लिप स्क्रिप्ट को दूसरे में चला सकते हैं। एक सकल हैक की तरह, हुह। कांटा और आवश्यकता(), मुझे नहीं लगता कि एपीसी कैश एक निष्पादन()

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

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