This is an old revision of the document!
How to setup Redis with LSWS for WordPress
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 a good way for you to have both of them setup on your server. This guide is valid for both with/without control panels.
Install Redis daemon
For both cPanel and Native 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
Copy and paste the entire block into SSH
- Installing the Redis PHP extension for all available versions of PHP:
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
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 version depends on which version you are using:
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 here
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
- More Redis Security information please follow here