This is an old revision of the document!
How to integrate Redis with WordPress on LSWS
Redis is an open source, in-memory data structure store, used as a database, cache and message broker. LSCache is the world's fastest full page caching. So it's useful for you to have both of them setup on your server. This guide can be used both with and without a control panel.
Install Redis daemon
For cPanel/Plesk/DirectAdmin and Native LSWS setup on CentOS 7:
- Add the EPEL repository:
yum install epel-release
- Install Redis:
yum install redis
- Start Redis:
systemctl start redis
Install Redis PHP extension
The phpredis extension provides an API for communicating with the Redis key-value store.
With cPanel EasyApache 4
- Installing the Redis PHP extension for all available versions of PHP (Copy and paste the entire block of text together - don't copy/paste line-by-line):
for phpver in $(ls -1 /opt/cpanel/ |grep ea-php | sed 's/ea-php//g') ; do cd ~ wget -O redis.tgz https://pecl.php.net/get/redis tar -xvf redis.tgz cd ~/redis* || exit /opt/cpanel/ea-php"$phpver"/root/usr/bin/phpize ./configure --with-php-config=/opt/cpanel/ea-php"$phpver"/root/usr/bin/php-config make && make install echo 'extension=redis.so' > /opt/cpanel/ea-php"$phpver"/root/etc/php.d/redis.ini rm -rf ~/redis* done /scripts/restartsrv_httpd /scripts/restartsrv_apache_php_fpm
- Check Redis:
for phpver in $(ls -1 /opt/cpanel/ |grep php | sed 's/ea-php//g') ; do echo "PHP $phpver" ; /opt/cpanel/ea-php$phpver/root/usr/bin/php -i |grep "Redis Support" done
Output should be:
PHP 55 Redis Support => enabled PHP 56 Redis Support => enabled PHP 70 Redis Support => enabled PHP 71 Redis Support => enabled
Note:
- You can check for the newest PHP redis version here
- To learn more please follow phpredis at Git
With Plesk
General Plesk support php-redis extention
If your Plesk version not support php-redis by default, please try compile Here
Without control panel
- Add the litespeed repository:
rpm -ivh http://rpms.litespeedtech.com/centos/litespeed-repo-1.1-1.el7.noarch.rpm
- List the litespeed Redis PHP extension
yum list | awk '/lsphp/&&/redis/'
- Install PHP (substitute the your lsphp version if it is different):
yum -y install lsphp71-pecl-redis
Verify the Installation
- Verify that Redis is running with redis-cli:
redis-cli ping
If Redis is running, it will return:PONG
Try the redis-benchmark utility
- A typical example would be:
redis-benchmark -q -n 100000
Output:
PING_INLINE: 31826.86 requests per second PING_BULK: 31595.58 requests per second SET: 33568.31 requests per second GET: 31908.10 requests per second INCR: 32647.73 requests per second LPUSH: 31220.73 requests per second RPUSH: 31565.66 requests per second LPOP: 31555.70 requests per second
- If you want to run one million SET operations, using a random key for every operation out of 100k possible keys, you can use the following command line:
redis-cli flushall redis-benchmark -t set -r 100000 -n 1000000
Output:
====== SET ====== 1000000 requests completed in 32.43 seconds 50 parallel clients 3 bytes payload keep alive: 1 99.98% <= 10 milliseconds 99.99% <= 11 milliseconds 99.99% <= 12 milliseconds 100.00% <= 17 milliseconds 30833.75 requests per second
Note: For more redis benchmark information, please refer to this
Integrate WordPress with Redis
- Edit
wp-config.php
and at the end of theAuthentication Unique Keys and Salts
section, add the following lines:define('WP_CACHE_KEY_SALT', 'string');
define('WP_CACHE', true);
- Restart LSWS
service lsws restart
Other Settings
- If you want to setup Master-Slave Replication, you may need to enable firewall for port 6379
firewall-cmd --permanent --zone=public --add-port=6379/tcp firewall-cmd --reload
- To automatically start Redis on boot:
systemctl enable redis
- For disk persistence, you can set
/etc/redis.conf
:appendonly yes
appendfsync everysec
- For more Redis Security information please refer to this