7

Just a quick question I cannot seem to find a solid answer for, does Magento Enteprise 1.13 come with Redis for cache backend out of the box now?

Or do I still need to use https://github.com/colinmollenhour/Cm_Cache_Backend_Redis ?

I can see there is a Mage_Cache_Backend_Redis file within my enterprise base install, but I am not 100% sure how to configure it as have no working knowledge of Redis so far.

1 Answer 1

21

Redis is supported in Magento 1.13 out of box - it is also a direct port of Colin's CE-compatible module.

The below is adapted from Colin's Github for Cm_Cache_Backend_Redis, edited for the class names in Enterprise 1.13.

This is how you would configure:

<!-- This is a child node of config/global -->
<cache>
  <backend>Mage_Cache_Backend_Redis</backend>
  <backend_options>
    <server>127.0.0.1</server> <!-- or absolute path to unix socket -->
    <port>6379</port>
    <persistent></persistent> <!-- Specify a unique string like "cache-db0" to enable persistent connections. -->
    <database>0</database>
    <password></password>
    <force_standalone>0</force_standalone>  <!-- 0 for phpredis, 1 for standalone PHP -->
    <connect_retries>1</connect_retries>    <!-- Reduces errors due to random connection failures -->
    <read_timeout>10</read_timeout>         <!-- Set read timeout duration -->
    <automatic_cleaning_factor>0</automatic_cleaning_factor> <!-- Disabled by default -->
    <compress_data>1</compress_data>  <!-- 0-9 for compression level, recommended: 0 or 1 -->
    <compress_tags>1</compress_tags>  <!-- 0-9 for compression level, recommended: 0 or 1 -->
    <compress_threshold>20480</compress_threshold>  <!-- Strings below this size will not be compressed -->
    <compression_lib>gzip</compression_lib> <!-- Supports gzip, lzf and snappy -->
  </backend_options>
</cache>

<!-- This is a child node of config/global for Magento Enterprise FPC -->
<full_page_cache>
  <backend>Mage_Cache_Backend_Redis</backend>
  <backend_options>
    <server>127.0.0.1</server> <!-- or absolute path to unix socket -->
    <port>6379</port>
    <persistent></persistent> <!-- Specify a unique string like "cache-db0" to enable persistent connections. -->
    <database>1</database> <!-- Separate database 1 to keep FPC separately -->
    <password></password>
    <force_standalone>0</force_standalone>  <!-- 0 for phpredis, 1 for standalone PHP -->
    <connect_retries>1</connect_retries>    <!-- Reduces errors due to random connection failures -->
    <lifetimelimit>57600</lifetimelimit>    <!-- 16 hours of lifetime for cache record -->
    <compress_data>0</compress_data>        <!-- DISABLE compression for EE FPC since it already uses compression -->
  </backend_options>
</full_page_cache>

An example of Redis session storage would be:

    <!-- example of redis session storage -->
    <session_save>db</session_save>
    <redis_session>                       <!-- All options seen here are the defaults -->
        <host>127.0.0.1</host>            <!-- Specify an absolute path if using a unix socket -->
        <port>6379</port>
        <password></password>             <!-- Specify if your Redis server requires authentication -->
        <timeout>2.5</timeout>            <!-- This is the Redis connection timeout, not the locking timeout -->
        <persistent></persistent>         <!-- Specify unique string to enable persistent connections. E.g.: sess-db0; bugs with phpredis and php-fpm are known: https://github.com/nicolasff/phpredis/issues/70 -->
        <db>0</db>                        <!-- Redis database number; protection from accidental loss is improved by using a unique DB number for sessions -->
        <compression_threshold>2048</compression_threshold>  <!-- Set to 0 to disable compression (recommended when suhosin.session.encrypt=on); known bug with strings over 64k: https://github.com/colinmollenhour/Cm_Cache_Backend_Redis/issues/18 -->
        <compression_lib>gzip</compression_lib>              <!-- gzip, lzf or snappy -->
        <log_level>1</log_level>               <!-- 0 (emergency: system is unusable), 4 (warning; additional information, recommended), 5 (notice: normal but significant condition), 6 (info: informational messages), 7 (debug: the most information for development/testing) -->
        <max_concurrency>6</max_concurrency>                 <!-- maximum number of processes that can wait for a lock on one session; for large production clusters, set this to at least 10% of the number of PHP processes -->
        <break_after_frontend>5</break_after_frontend>       <!-- seconds to wait for a session lock in the frontend; not as critical as admin -->
        <break_after_adminhtml>30</break_after_adminhtml>
        <bot_lifetime>7200</bot_lifetime>                    <!-- Bots get shorter session lifetimes. 0 to disable -->
    </redis_session>

Source: https://github.com/colinmollenhour/Cm_Cache_Backend_Redis

Source: http://www.magentocommerce.com/knowledge-base/entry/ee113-later-release-notes#ee113-11300-highlights

4
  • 2
    When using EE, you'll get better throughput with dual redis instances. Run one on port 6380 and use it for the FPC store.
    – davidalger
    Commented Jun 10, 2013 at 17:49
  • Fabrizio Branca/AOE and Nexcess had great talks on this at Imagine 2013.
    – philwinkle
    Commented Jun 10, 2013 at 17:50
  • 1
    lifted as well, refactored namespace: twitter.com/colinmollenhour/status/326346593685094400
    – B00MER
    Commented Jun 27, 2013 at 8:54
  • 1
    @B00MER that's been rectified in 1.8.0.0CE. I think they made nice.
    – philwinkle
    Commented Oct 1, 2013 at 23:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.