
In the previous post “Install Redis on Amazon EC2 Server” we had seen the process to install Redis on the server. In this article we will see how to integarte the Redis with Magento1.x
There are few php extension we need to install before we do integration with Magento. In my case my php version is 5.6.x.
PhpRedis - PHP extension from Nicolas Favre-Felix, which allows to access to Redis from php. This extension we need to install.
To install the above extension we need to make sure that pear library is installed. To install pear below are the steps :
yum install php-pear
Install necessary packages
yum install php56-devel // This is applicable if you having PHP 5.6 version
Now to install phpRedis we need to download the package
cd /usr/local/src
sudo wget https://github.com/phpredis/phpredis/archive/master.zip -O phpredis.zip
sudo unzip phpredis.zip
cd phpredis
sudo phpize && sudo ./configure && sudo make && sudo make install
After the installation is complete we need to enable the Redis extension in the php.ini . Using phpinfo you can get to know where is your php.ini and other extensions ini files are located.
In my case the php extension ini files are located this path /etc/php-5.6.d/. create a file by name redis.ini and add the extension in that
sudo vi /etc/php-5.6.d/redis.ini
Add the below line code to it and save
extension=redis.so
Configure Magento1.9.x with Redis
Go to your magento root and open the below file
sudo vi app/etc/modules/Cm_RedisSession.xml
Enable it by setting active to true
<config>
<modules>
<Cm_RedisSession>
<active>true</active>
<codePool>community</codePool>
</Cm_RedisSession>
</modules>
</config>
Then, edit the ‘local.xml’ file located in magento directory
vi /magento-root-dirrectory/app/etc/local.xml
<global>
<cache>
<backend>Cm_Cache_Backend_Redis</backend>
<backend_options>
<server>127.0.0.1</server> <!– or absolute path to unix socket –>
<port>6379</port><port>6379</port>
<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 –>
<database>0</database> <!– Redis database number; protection against accidental data loss is improved by not sharing databases –>
<password></password> <!– Specify if your server requires authentication –> <force_standalone>0</force_standalone> <!– 0 for phpredis, 1 for standalone PHP –> <connect_retries>1</connect_retries> <!– Reduces errors due to random connection failures; a value of 1 will not retry after the first failure –> <read_timeout>10</read_timeout> <!– Set read timeout duration; phpredis does not currently support setting read timeouts –>
<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, lz4 (as l4z) and snappy –> <use_lua>0</use_lua> <!– Set to 1 if Lua scripts should be used for some operations –>
<backend_options>
</cache>
<!–session_save><![CDATA[files]]></session_save–>
<session_save>db</session_save>
<redis_session>
<host>127.0.0.1</host>
<port>6379</port>
<password></password> <!– Specify if your server requires authentication –>
<timeout>2.5</timeout> <!– This is the 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, lz4 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 –>
<fail_after>10</fail_after> <!– seconds after which we bail from attempting to obtain lock (in addition to break after time) –>
<break_after_adminhtml>30</break_after_adminhtml>
<first_lifetime>600</first_lifetime> <!– Lifetime of session for non-bots on the first write. 0 to disable –>
<bot_first_lifetime>60</bot_first_lifetime> <!– Lifetime of session for bots on the first write. 0 to disable –>
<bot_lifetime>7200</bot_lifetime> <!– Lifetime of session for bots on subsequent writes. 0 to disable –>
<disable_locking>0</disable_locking> <!– Disable session locking entirely. –>
<min_lifetime>60</min_lifetime> <!– Set the minimum session lifetime –>
<max_lifetime>2592000</max_lifetime> <!– Set the maximum session lifetime –></redis_session>
</global>
Clear all the cache and sessions and Flush Magento Cache
rm -rf /var/www/html/magento/var/session/*
rm -rf /var/www/html/magento/var/cache/*
Login to Admin > System > Cache Management
Click “Flush Magento Cache”
Now restart the Redis server
service redis-server restart
Check if Redis is working or not
redis-cli ping
If the result is PONG .. be happy its working
To get the information and statistics of Redis server
redis-cli info
Hope this article would be helpful..
Recent Comments