Làm cách nào để sử dụng Cơ sở dữ liệu dưới dạng Slow_backend thay vì Tệp trong Magento EE 1.12?


14

Trong Magento EE 1.12.0.0 Dường như bất kể tôi thay đổi cấu hình nào app/etc/local.xml, bộ đệm tệp mặc định vẫn tiếp tục được sử dụng (được chứng minh bằng cách var/cache/luôn luôn điền).

Sự mong đợi

  • Memcached được sử dụng như fast_backend.
  • Cơ sở dữ liệu được sử dụng như Slow_backend.
  • Bộ đệm tệp hoàn toàn không được sử dụng (nghĩa là var/cache/luôn luôn trống).

Sản lượng thực tế

  • Memcached được sử dụng như fast_backend.
  • Cơ sở dữ liệu hoàn toàn không được sử dụng.
  • Bộ nhớ cache tệp đang được sử dụng.

Thủ tục kiểm tra

  1. Thay đổi cấu hình thành app/etc/local.xml.
  2. Khởi động lại Memcached và Apache (chỉ vì biện pháp tốt và nó nằm trong hộp dev cục bộ của tôi nên tôi cũng có thể).
  3. Xóa bộ đệm ẩn tập tin ( rm -rf var/cache/*).
  4. Làm mới trang chủ.
  5. Kiểm tra nội dung của bộ đệm ẩn tập tin ( ls var/cache).
  6. Trở nên buồn bã và trở về # 1 với một sự thay đổi cấu hình khác.

Cấu hình

Nội dung của tôi app/etc/local.xmlnhư sau:

<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>


Tôi chưa bao giờ tìm ra giải pháp cho vấn đề này; tuy nhiên, vì tôi đã từng làm việc cho các dự án Magento bổ sung dưới sự thuê mướn của một công ty khác và đã sử dụng các cấu hình tương tự như mô tả ở đây, tôi có xu hướng tin rằng đó là một vấn đề với một trong: 1. Việc cài đặt Magento (xấu sửa đổi / mô-đun / v.v.) 2. Các tập lệnh cung cấp của công ty cho các máy chủ của họ không được điều chỉnh tốt từ Drupal và một số điều đã bị bỏ qua 3. Đạo luật của Thiên Chúa / Thiên nhiên 4. (rất có thể) Đó là Magento Bất kể, @fantasticrice đã đưa ra một câu trả lời tuyệt vời. giúp Googlers, để anh ta nhận được giải thưởng!
Robr3

Câu trả lời:


5

Tôi nghĩ rằng đó không phải là định dạng đúng cho các nút bộ đệm. Tôi hiểu rằng tất cả các cài đặt bộ đệm nên được lồng bên trong <cache>nút. Vì vậy, để sử dụng bộ đệm hai cấp với cơ sở dữ liệu memcached +, nó sẽ giống như thế này:

<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>

Hãy nhớ rằng <full_page_cache>có thể được cấu hình chính xác theo cùng một cách và có thể sử dụng các cài đặt khác nhau nếu bạn muốn. Chúng chỉ là hai trường hợp bộ nhớ cache riêng biệt.

Chỉ là một lưu ý phụ, tôi rất khuyên bạn nên sử dụng Redis thay thế. Nó hỗ trợ các thẻ, vì vậy nó có thể được sử dụng như một bộ đệm cấp đơn và nó sẽ hoạt động tốt hơn nhiều so với cơ sở dữ liệu memcached + hai cấp.


3
Tôi thứ hai vận động cho Redis. Các phụ trợ chậm db gây hại nhiều hơn nó giúp.
philwinkle

Tôi cũng đã thử cấu hình đó (thực sự là những gì tôi đã bắt đầu - cái tôi đã đăng được đề xuất thay thế vì cách trên không hoạt động). Có <full_page_cache>thể sẽ được lấp đầy var/cache? Đó là sự hiểu biết của tôi rằng nó thay vì sử dụng var/full_page_cache. Tôi cũng đã thử sử dụng cùng <cache>...</cache>(phong cách của bạn) cho <full_page_cache>enterprise.xmlkhông có kết quả. Theo như Redis, không may sử dụng phụ trợ DB là yêu cầu.
Robr3rd

Tôi chỉ nhận thấy rằng bạn có <cache>...<servers>...<server1>...</server1>. Là 1trong server1quan trọng?
Robr3rd

@RobertRobinson - không, hoàn toàn không quan trọng ngoại trừ một cách để xác định nhiều nút bên dưới <servers>. Bạn có thể sử dụng foo, bar, baz dễ dàng như server1, server2, server3. Bạn đúng là full_page_cachetrường hợp đó có thư mục con riêng của varnó nếu nó đang sử dụng các tệp.
fantasticrice

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.