Feb 10, 2018
181 Views

Cài đặt Redis

Written by

Redis là gì?

Redis là hệ thống lưu trữ key-value với rất nhiều tính năng và được sử dụng rộng rãi. Redis nổi bật bởi việc hỗ trợ nhiều cấu trúc dữ liệu cơ bản (hash, list, set, sorted set, string), đồng thời cho phép scripting bằng ngôn ngữ lua. Bên cạnh lưu trữ key-value trên RAM với hiệu năng cao, redis còn hỗ trợ lưu trữ dữ liệu trên đĩa cứng (persistent redis) cho phép phục hồi dữ liệu khi gặp sự cố. Ngoài tính năng replicatation (sao chép giữa master-client), tính năng cluster (sao lưu master-master) cũng đang được phát triển .

Redis hỗ trợ đầy đủ các chức năng tương tự Memcached nhưng có thao tác lấy và nạp dữ liệu rất nhanh chóng, hơn hẳn memcached.

I/Windows

1. Download extension file cài đặt trên Windows

  • Download Redis extension for xampp tại đây.
  • Trong link có các bản *-ts và *-nts vậy chúng là gì?
    • ts là Thread Safe : Dùng trong trường hợp server có sử dụng giao thức CGI(FastCGI). Và version này cung cấp perfomance tốt hơn so với Thread Safe khi sử dụngkết hợp IIS với FastCGI.
    • nts là Non Thread Safe :  Dùng cho những environments mà keep những cái PHP engine trong memory và có thể chạy multil thread.

Tôi thấy nếu bạn đang muốn sử dụng PHP và Apache trên nền Windows thì bạn nên chọn Thread Safe.

  • Download the redis-latest.zip native Windows port of redis tại đây

2. Cài đặt redis trên Windows

  • Giải nén bộ cài redis bỏ vào Xampp. Máy mình D:/xampp/redis64
  • Bỏ file php_redis.dll vào Xampp. Ví dụ trên máy mình là D:xamppphpext
  • Mở cmd:
  • Start service
  • Stop service

    Uninstall service:

Để tiện start service sau này thì bạn có thể tạo 1 file .bat có nội dung:

Sau đó để file đó run cùng khi Win khởi động.

II/ Centos

1. Hướng dẫn cài đặt Redis

Để Redis có thể làm việc được với Magento, chúng ta sẽ cần cài đặt Redis server cùng với extension PhpRedis để PHP có thể kết nối được với Redis.

– Thêm repo epel, remi

## CentOS 7 ##
yum install epel-release
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

## CentOS 6 ##
yum install epel-release
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

– Cài đặt Redis và PhpRedis extension

## PHP 7.1 ##
yum --enablerepo=remi,remi-php71 install redis php-pecl-redis
service php-fpm restart

## PHP 7.0 ##
yum --enablerepo=remi,remi-php70 install redis php-pecl-redis
service php-fpm restart

## PHP 5.6 ##
yum --enablerepo=remi,remi-php56 install redis php-pecl-redis
service php-fpm restart

## PHP 5.5 ##
yum --enablerepo=remi,remi-php55 install redis php-pecl-redis
service php-fpm restart

– Chạy Redis và tự động khởi động khi boot

chkconfig redis on
service redis start

2. Kiểm tra lại quá trình cài đặt Redis

– Check lại Redis server

redis-cli ping

Nếu kết quả về PONG là ok

– Check lại PhpRedis extension

php -m | grep redis

Kết quả trả về redis là ok

– Redis shell tools

Mặc định Redis cài đặt với một công cụ comment là redis-cli

Sau khi khởi động Redis, các bạn có thể sử dụng một số command như:

  • FLUSHALL – clear all databases
  • SELECT # – select database under index #
  • FLUSHDB – empty currently selected database
  • KEYS * – list all keys from currently selected

Xem danh sách đầy đủ command ở đây.

3. PHPRedMin – Quản lý và theo dõi Redis

Sau khi cài xong, bạn có thể sử dụng PHPRedMin để quản lý Redis với giao diện web trực quan ngay. Tải về tại PHPRedMin Github.

Giải nén xong, bạn đổi tên thư mục phpredmin-master thành phpredmin rồi up lên server. Truy cập vào giao diện quản lý sử dụng link: domain/phpredmin/public/

Thông tin đăng nhập username/password mặc định là admin/admin. Để chỉnh sửa bạn mở file /phpredmin/config.dist.php lên và sửa tương ứng ở đoạn auth

'auth' => array(
  'username' => 'admin',
  'password' => password_hash('admin', PASSWORD_DEFAULT)
),

PHPRedMin sử dụng rewrite, nên bạn cần cấu hình lại rule thì mới hoạt động được.

– Với Apache:

Alias /phpredmin /var/www/phpredmin/public

<Directory /var/www/phpredmin/>
   AllowOverride All

   <IfModule mod_authz_core.c>
     # Apache 2.4
     <RequireAny>
       Require ip localhost
       Require local
     </RequireAny>
   </IfModule>

   <IfModule !mod_authz_core.c>
     # Apache 2.2
     Order Deny,Allow
     Deny from All
     Allow from 127.0.0.1
     Allow from ::1
   </IfModule>
</Directory>

– Với Nginx:

location /phpredmin/public/ {
   try_files $uri $uri/ /phpredmin/public/index.php;
}

Lưu ý: Trong trường hợp bạn để PHPRedMin trong thư mục private_html để truy cập qua HocVPS Admin(link domain:port/phpredmin/public/) thì bắt buộc phải bỏ đăng nhập của PHPRedMin, kẻo conflict với hệ thống.

Cài đặt xong bạn phải chạy phân quyền webserver (hocvps menu 14) để PHPRedMin ghi được file log, đồng thời restart Nginx và PHP-FPM.

 

III/ Sử dụng Redis với WordPress và Magento

1/ WP

Sau khi cài đặt xong Redis và kích hoạt service, bạn chỉ cần cài đặt thêm plugin W3 Total Cache rồi kích hoạt lựa chọn Redis trong trang cấu hình là xong.

2/ Magento

Với Magento, Redis hỗ trợ các phiên bản khác nhau. Trong trường hợp phiên bản Magento của bạn không hỗ trợ Redis cache hoặc session backend (hoặc cả hai), bạn có thể sử dụng extensions cài đặt thêm.

Magento CE >= 1.7.0.0 và < 1.8.0.0

  • Session storage – không hỗ trợ
  • Cache backend –không hỗ trợ, tên class sau khi cài đặt là Cm_Cache_Backend_Redis

Magento CE >= 1.8.0.0

  • Session storage – hỗ trợ
  • Cache backend –hỗ trợ, tên class sau khi cài đặt là Mage_Cache_Backend_Redis

Magento EE >= 1.13.0.0 và < 1.13.1.0

  • Session storage – không hỗ trợ
  • Cache backend – hỗ trợ, tên class sau khi cài đặt là Mage_Cache_Backend_Redis

Magento EE >= 1.13.1.0

Session storage – hỗ trợ
Cache backend – hỗ trợ, tên class sau khi cài đặt là Mage_Cache_Backend_Redis

Sử dụng Redis làm backend cache

Để kích hoạt Redis, bạn hãy sửa file app/etc/local.xml, thêm đoạn sau vào vị trí tương ứng để sử dụng database 0

<config>
    <global>
 
        <!-- other configuration nodes -->
 
        <cache>
          <backend>CACHE_BACKEND_CLASS_NAME</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>
 
        <!-- other configuration nodes -->
 
    </global>
</config>

Thay CACHE_BACKEND_CLASS_NAME bằng tên class như đã đề cập bên trên.

Sau khi kích hoạt Redis, bạn có thể xóa toàn bộ nội dung trong folder var/cache. Để kiểm tra xem Redis có đang hoạt động thực sự hay không, hãy chạy tool redis-cli rồi dùng lệnh sau với database 0

SELECT 0
KEYS *
Article Tags:
· · · · · · · · · ·
Article Categories:
IT & Network
    http://linholiver.com

    https://linholiver.com/diary/about/