Magento EE 1.12 में फ़ाइलों के बजाय डेटाबेस को slow_backend के रूप में कैसे उपयोग करें?


14

Magento EE 1.12.0.0 में यह प्रतीत होता है कि कोई फर्क नहीं पड़ता कि मैं किस कॉन्फ़िगरेशन में बदलाव करता हूं app/etc/local.xml, डिफ़ॉल्ट फ़ाइल कैश का उपयोग जारी रहता है (जो var/cache/हमेशा भरने से स्पष्ट होता है)।

उम्मीद

  • Memcached का उपयोग fast_backend के रूप में किया जाता है।
  • डेटाबेस को slow_backend के रूप में उपयोग किया जाता है।
  • फ़ाइल कैश का उपयोग बिल्कुल नहीं किया जाता है (यानी var/cache/हमेशा खाली होना चाहिए)।

वास्तविक उत्पादन

  • Memcached का उपयोग fast_backend के रूप में किया जाता है।
  • डेटाबेस का उपयोग बिल्कुल नहीं किया जाता है।
  • फ़ाइल कैश का उपयोग किया जा रहा है।

परीक्षण प्रक्रिया

  1. करने के लिए कॉन्फ़िगरेशन परिवर्तन करें app/etc/local.xml
  2. फिर से शुरू करें और अपाचे को पुनः आरंभ करें (केवल अच्छे उपाय के लिए और यह मेरे स्थानीय देव बॉक्स पर है इसलिए मैं भी हो सकता है)।
  3. फ़ाइल कैश साफ़ करें ( rm -rf var/cache/*)।
  4. होम पेज को रिफ्रेश करें।
  5. फ़ाइल कैश की सामग्री की जाँच करें ( ls var/cache)।
  6. दुखी हो जाओ और एक अलग विन्यास परिवर्तन के साथ # 1 पर वापस लौटें।

विन्यास

मेरी सामग्री app/etc/local.xmlइस प्रकार है:

<config>
    <global>
        <install>
            <date><![CDATA[{{actual_data}}]]></date>
        </install>
        <crypt>
            <key><![CDATA[{{actual_data}}]]></key>
        </crypt>
        <disable_local_modules>false</disable_local_modules>
        <resources>
            <db>
                <table_prefix><![CDATA[]]></table_prefix>
            </db>
            <default_setup>
                <connection>
                    <host><![CDATA[{{actual_data}}]]></host>
                    <username><![CDATA[{{actual_data}}]]></username>
                    <password><![CDATA[{{actual_data}}]]></password>
                    <dbname><![CDATA[{{actual_data}}]]></dbname>
                    <initStatements><![CDATA[SET NAMES utf8]]></initStatements>
                    <model><![CDATA[mysql4]]></model>
                    <type><![CDATA[pdo_mysql]]></type>
                    <pdoType><![CDATA[]]></pdoType>
                    <active>1</active>
                </connection>
            </default_setup>
        </resources>
        <session_save><![CDATA[db]]></session_save>
        <cache>memcached</cache>
        <slow_backend>database</slow_backend>
        <slow_backend_store_data>1</slow_backend_store_data>
        <memcached>
            <servers>
                <server>
                    <host><![CDATA[{{actual_data}}]]></host>
                    <port><![CDATA[{{actual_data}}]]></port>
                    <persistent><![CDATA[0]]></persistent>
                    <weight><![CDATA[2]]></weight>
                    <timeout><![CDATA[10]]></timeout>
                    <retry_interval><![CDATA[10]]></retry_interval>
                    <status><![CDATA[]]></status>
                </server>
            </servers>
            <compression><![CDATA[0]]></compression>
            <cache_dir><![CDATA[]]></cache_dir>
            <hashed_directory_level><![CDATA[]]></hashed_directory_level>
            <hashed_directory_umask><![CDATA[]]></hashed_directory_umask>
            <file_name_prefix><![CDATA[]]></file_name_prefix>
        </memcached>
    </global>
    <admin>
        <routers>
            <adminhtml>
                <args>
                    <frontName><![CDATA[admin]]></frontName>
                </args>
            </adminhtml>
        </routers>
    </admin>
</config>


मैंने कभी इस समस्या का हल नहीं खोजा; हालाँकि, जब से मैंने एक अलग कंपनी के रोजगार के तहत अतिरिक्त Magento परियोजनाओं पर काम किया है और यहाँ वर्णित लोगों के समान विन्यास का उपयोग किया है, मुझे विश्वास है कि यह एक के साथ एक मुद्दा था: 1. Magento की स्थापना खराब ( संशोधन / मॉड्यूल / आदि) 2. अपने सर्वर के लिए कंपनी की प्रोविजनिंग स्क्रिप्ट्स को ड्रुपल से खराब रूप से अनुकूलित किया जा रहा है और कुछ चीजें छूट गई हैं। 3. एक्ट ऑफ गॉड / नेचर 4. (सबसे अधिक संभावना है) यह मैगेंटो रिगार्डलेस है, @fantasticrice ने एक बहुत अच्छा काम किया है Googlers की मदद करें, इसलिए उसे पुरस्कार मिलता है!
रॉबर्ड

जवाबों:


5

मुझे लगता है कि कैश नोड्स के लिए यह सही प्रारूप नहीं है। मेरी समझ यह है कि सभी कैश सेटिंग्स <cache>नोड के अंदर नेस्टेड होनी चाहिए । तो मेम्केच्ड + डेटाबेस के साथ दो-स्तरीय कैश का उपयोग करने के लिए यह कुछ इस तरह होगा:

<cache>
    <backend>memcached</backend>
    <slow_backend>database</slow_backend>
    <memcached>
        <servers>
            <server1>
                <host>...</host>
                <port>11211</port>
                <persistent>1</persistent>
                <weight>2</weight>
                <timeout>10</timeout>
                <retry_interval>10</retry_interval>
                <status/>
            </server1>
            ...
        </servers>
        <compression>0</compression>
        <cache_dir/>
        <hashed_directory_level/>
        <hashed_directory_umask/>
        <file_name_prefix/>
    </memcached>
</cache>

ध्यान रखें कि <full_page_cache>ठीक उसी तरह से कॉन्फ़िगर किया जा सकता है और यदि आप चाहें तो विभिन्न सेटिंग्स का उपयोग कर सकते हैं। वे सिर्फ दो अलग-अलग कैश उदाहरण हैं।

एक साइड नोट के रूप में, मैं इसके बजाय Redis का उपयोग करने की अत्यधिक सलाह दूंगा । यह टैग का समर्थन करता है, इसलिए इसे एकल स्तर के कैश के रूप में उपयोग किया जा सकता है और यह दो-स्तरीय मेमेकैड + डेटाबेस से बहुत बेहतर प्रदर्शन करेगा।


3
मैं रेडिस के लिए वकालत दूसरा। Db धीमे बैकएंड से अधिक नुकसान होता है क्योंकि यह मदद करता है।
-'१५ को

मैंने उस कॉन्फ़िगरेशन को भी आज़माया है (यह वास्तव में मैं किसके साथ शुरू किया था - जिस पर मैंने पोस्ट किया था, वह विकल्प के रूप में सुझाया गया था क्योंकि ऊपर काम नहीं कर रहा था)। चाहेंगे <full_page_cache>संभवतः भरने var/cache? यह मेरी समझ है कि इसके बजाय इसका उपयोग करता है var/full_page_cache। मैंने भी <cache>...</cache>(आपकी शैली) का उपयोग करने की कोशिश की है <full_page_cache>और enterprise.xmlकोई फायदा नहीं हुआ। जहां तक ​​रेडिस जाती है, दुर्भाग्य से डीबी बैकएंड का उपयोग करना आवश्यक है।
रॉबर्ड 3

मैंने अभी देखा कि आपके पास है <cache>...<servers>...<server1>...</server1>। है 1में server1महत्वपूर्ण है?
रॉबर्ड 3

@RobertRobinson - नहीं, के तहत कई नोड्स को परिभाषित करने के तरीके के अलावा सभी महत्वपूर्ण नहीं है <servers>। आप foo, bar, baz को आसानी से server1, server2, server3 के रूप में आसानी से उपयोग कर सकते हैं। यदि आप फ़ाइलों का उपयोग कर रहे हैं तो यह सही है कि full_page_cacheउदाहरण के तहत अपना उपनिर्देशिका प्राप्त varहोता है।
शानदार

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.