This is an old revision of the document!


How to setup Redis with LiteSpeed Web Server

This guide is valid for both no Control Panel and with control panels.

Install Redis daemon

  1. Add the EPEL repository:
    yum install epel-release 
  2. Install Redis:
    yum install redis
  3. Start Redis:
    systemctl start redis

Install Redis PHP extension

The phpredis extension provides an API for communicating with the Redis key-value store.

Without control panel

  1. Add the litespeed repository:
    rpm -ivh http://rpms.litespeedtech.com/centos/litespeed-repo-1.1-1.el7.noarch.rpm
  2. List the litespeed Redis PHP extension
    yum list | awk '/lsphp/&&/redis/'
  3. Install PHP version depends on which version you are using:
    yum -y install lsphp71-pecl-redis

With cPanel

  1. 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
  2. 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 
  • Note:
    • Checking newest PHP redis version here
    • For More description please follow Git

Verify the Installation

  1. Verify that Redis is running with redis-cli:
    redis-cli ping


    If Redis is running, it will return:

    PONG
  2. Verify by using LiteSpeed default PHP info page http://Server_IP:8088/phpinfo.php:

Try the redis-benchmark utility

  1. 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
    
  2. 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 information, please refer here

Integrate WordPress with Redis

  1. WordPress install Redis Object Cache Plugin
  2. Activate and click Enable Object Cache button
  3. Confirm Status is Connected
  4. Confirm Diagnostics shows Redis with version
  5. Edit wp-config.php and at the end of the Authentication Unique Keys and Salts section, add the following lines:
    1. define('WP_CACHE_KEY_SALT', 'string');
    2. define('WP_CACHE', true);
  6. Restart LSWS
    service lsws restart
  7. Test WordPress is communicating with Redis by monitor command:
     redis-cli monitor 

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
  • Admin
  • Last modified: 2017/08/23 19:00
  • by Eric Leu