Thứ hai, 15/12/2014 | 00:00 GMT+7

Cách cấu hình bộ đệm Redis để tăng tốc WordPress trên Ubuntu 14.04

Redis là một repository giá trị khóa open-souce có thể hoạt động như một repository trong bộ nhớ và như một bộ nhớ cache. Redis là một server cấu trúc dữ liệu được dùng như một server database của riêng nó hoặc được ghép nối với một database quan hệ như MySQL để tăng tốc mọi thứ, như ta đang làm trong hướng dẫn này.

Đối với hướng dẫn này, Redis sẽ được cấu hình làm bộ nhớ đệm cho WordPress để giảm bớt các truy vấn database dư thừa và tốn thời gian được sử dụng để hiển thị một trang WordPress. Kết quả là một trang WordPress nhanh hơn nhiều, sử dụng ít tài nguyên database hơn và cung cấp một bộ nhớ cache liên tục có thể điều chỉnh được. Hướng dẫn này áp dụng cho Ubuntu 14.04.

Mặc dù mọi trang web đều khác nhau, nhưng dưới đây là ví dụ về điểm chuẩn của trang chủ cài đặt Wordpress mặc định có và không có Redis, như được cấu hình từ hướng dẫn này. Các công cụ dành cho nhà phát triển Chrome đã được sử dụng để kiểm tra khi cache của trình duyệt bị tắt.

Trang chủ WordPress mặc định không có Redis:

Thời gian tải trang 804ms

Trang chủ WordPress mặc định với Redis:

Thời gian tải trang 449ms

Lưu ý: Việc triển khai bộ nhớ đệm Redis cho WordPress này dựa trên một tập lệnh của bên thứ ba nhưng được comment tốt. Tập lệnh được lưu trữ trên server tài sản của DigitalOcean, nhưng được phát triển bên ngoài. Nếu bạn muốn tự mình triển khai bộ nhớ đệm Redis cho WordPress, bạn cần thực hiện thêm một số công việc dựa trên các khái niệm được trình bày ở đây.

Redis so với Memcached

Memcached cũng là một lựa chọn bộ nhớ cache phổ biến. Tuy nhiên, tại thời điểm này, Redis làm mọi thứ mà Memcached có thể làm, với bộ tính năng lớn hơn nhiều. Trang Stack Overflow này có một số thông tin chung dưới dạng tổng quan hoặc giới thiệu về những người mới sử dụng Redis.

Bộ nhớ đệm hoạt động như thế nào?

Lần đầu tiên một trang WordPress được tải, một truy vấn database được thực hiện trên server . Redis ghi nhớ, hoặc lưu vào bộ nhớ cache , truy vấn này. Vì vậy, khi user khác tải trang Wordpress, kết quả được cung cấp từ Redis và từ bộ nhớ mà không cần truy vấn database .

Việc triển khai Redis được sử dụng trong hướng dẫn này hoạt động như một cache đối tượng liên tục cho WordPress (không hết hạn). Cache ẩn đối tượng hoạt động bằng cách lưu vào bộ nhớ đệm các truy vấn SQL trong bộ nhớ cần thiết để tải một trang WordPress.

Khi một trang tải, kết quả truy vấn SQL kết quả được cung cấp từ bộ nhớ bởi Redis, do đó, truy vấn không phải truy cập vào database . Kết quả là thời gian tải trang nhanh hơn nhiều và server ít ảnh hưởng hơn đến tài nguyên database . Nếu một truy vấn không có sẵn trong Redis, database sẽ cung cấp kết quả và Redis sẽ thêm kết quả vào bộ nhớ cache của nó.

Nếu một giá trị được cập nhật trong database (ví dụ: một bài đăng hoặc trang mới được tạo trong WordPress) thì giá trị Redis cho truy vấn đó sẽ bị vô hiệu để ngăn dữ liệu được lưu trong bộ nhớ cache xấu được hiển thị.

Nếu bạn gặp sự cố với bộ nhớ đệm, bộ nhớ đệm Redis có thể được xóa bằng cách sử dụng lệnh flushall từ dòng lệnh Redis:

redis-cli 

Khi bạn thấy dấu nhắc , hãy nhập:

flushall 

Tham khảo thêm: Tài liệu về bộ nhớ đệm đối tượng WordPress

Yêu cầu

Trước khi bắt đầu hướng dẫn này, bạn cần cài đặt user sudo và cài đặt WordPress.

  • Ubuntu 14.04 Server (khuyến nghị 1 GB hoặc cao hơn)
  • Thêm user sudo
  • Cài đặt WordPress. Hướng dẫn này đã được thử nghiệm vớicác hướng dẫn này , mặc dù có nhiều cách để cài đặt WordPress

Bước 1 - Cài đặt Redis

Để sử dụng Redis với WordPress, cần cài đặt hai gói: redis-serverphp5-redis . Gói redis-server cung cấp Redis, trong khi gói php5-redis cung cấp một phần mở rộng PHP cho các ứng dụng PHP như WordPress để giao tiếp với Redis.

Cài đặt softare:

sudo apt-get install redis-server php5-redis 

Bước 2 - Cấu hình Redis làm Cache

Redis có thể hoạt động như một repository database NoSQL cũng như một bộ nhớ cache. Đối với hướng dẫn và trường hợp sử dụng này, Redis sẽ được cấu hình làm bộ nhớ đệm. Để làm được điều này, cần phải có các cài đặt sau.

Chỉnh sửa file /etc/redis/redis.conf và thêm các dòng sau ở dưới cùng:

sudo nano /etc/redis/redis.conf 

Thêm các dòng này vào cuối file :

maxmemory 256mb maxmemory-policy allkeys-lru 

Khi các thay đổi hoàn tất, hãy lưu file .

Bước 3 - Lấy tập lệnh backend Redis Cache

Tập lệnh PHP cho WordPress này ban đầu được phát triển bởi Eric Mann . Nó là một backend bộ nhớ cache đối tượng Redis cho WordPress.

Download tập lệnh object-cache.php . Bản download này là từ server tài sản của DigitalOcean, nhưng đây là tập lệnh của bên thứ ba . Bạn nên đọc các comment trong script để xem nó hoạt động như thế nào.

Download tập lệnh PHP:

wget https://assets.digitalocean.com/articles/wordpress_redis/object-cache.php 

Di chuyển file vào folder /wp-content của cài đặt WordPress của bạn:

sudo mv object-cache.php /var/www/html/wp-content/ 

Tùy thuộc vào cài đặt WordPress của bạn, vị trí của bạn có thể khác nhau.

Bước 4 - Bật cài đặt bộ nhớ cache trong wp-config.php

Tiếp theo, chỉnh sửa file wp-config.php để thêm muối khóa bộ nhớ cache với tên trang web (hoặc bất kỳ chuỗi nào bạn muốn).

nano /var/www/html/wp-config.php 

Thêm dòng này vào cuối * Authentication Unique Keys and Salts. phần:

define('WP_CACHE_KEY_SALT', 'example.com'); 

Bạn có thể sử dụng domain của bạn hoặc một chuỗi khác làm muối.

Lưu ý: Đối với user lưu trữ nhiều trang web WordPress, mỗi trang web có thể chia sẻ cùng một cài đặt Redis miễn là nó có muối khóa bộ nhớ cache duy nhất của riêng mình.

Ngoài ra, hãy thêm dòng sau vào sau dòng WP_CACHE_KEY_SALT để tạo bộ nhớ cache liên tục với plugin bộ nhớ cache đối tượng Redis:

define('WP_CACHE', true); 

Tất cả cùng nhau, file của bạn sẽ giống như sau:

 * Authentication Unique Keys and Salts.  . . .  define('NONCE_SALT',       'put your unique phrase here');  define('WP_CACHE_KEY_SALT', 'example.com'); define('WP_CACHE', true); 

Lưu và đóng file .

Bước 5 - Khởi động lại Redis và Apache

Cuối cùng, khởi động lại redis-serviceapache2 .

Khởi động lại Redis:

sudo service redis-server restart 

Khởi động lại Apache:

sudo service apache2 restart 

Khởi động lại php5-fpm nếu bạn đang sử dụng nó; đây không phải là một phần của cài đặt cơ bản trên DigitalOcean:

sudo service php5-fpm restart  

Đó là nó! Trang web WordPress của bạn hiện đang sử dụng bộ nhớ đệm Redis. Nếu bạn kiểm tra tốc độ tải trang và việc sử dụng tài nguyên, bạn sẽ nhận thấy những cải tiến.

Theo dõi Redis bằng redis-cli

Để theo dõi Redis, hãy sử dụng lệnh redis-cli như sau:

redis-cli monitor 

Khi bạn chạy lệnh này, bạn sẽ thấy kết quả thời gian thực của Redis phục vụ các truy vấn được lưu trong bộ nhớ cache. Nếu bạn không thấy gì, hãy truy cập trang web và reload một trang.

Dưới đây là ví dụ kết quả từ một trang WordPress được cấu hình theo hướng dẫn này bằng Redis:

OK 1412273195.815838 "monitor" 1412273198.428472 "EXISTS" "example.comwp_:default:is_blog_installed" 1412273198.428650 "GET" "example.comwp_:default:is_blog_installed" 1412273198.432252 "EXISTS" "example.comwp_:options:notoptions" 1412273198.432443 "GET" "example.comwp_:options:notoptions" 1412273198.432626 "EXISTS" "example.comwp_:options:alloptions" 1412273198.432799 "GET" "example.comwp_:options:alloptions" 1412273198.433572 "EXISTS" "example.comwp_site-options:0:notoptions" 1412273198.433729 "EXISTS" "example.comwp_:options:notoptions" 1412273198.433876 "GET" "example.comwp_:options:notoptions" 1412273198.434018 "EXISTS" "example.comwp_:options:alloptions" 1412273198.434161 "GET" "example.comwp_:options:alloptions" 1412273198.434745 "EXISTS" "example.comwp_:options:notoptions" 1412273198.434921 "GET" "example.comwp_:options:notoptions" 1412273198.435058 "EXISTS" "example.comwp_:options:alloptions" 1412273198.435193 "GET" "example.comwp_:options:alloptions" 1412273198.435737 "EXISTS" "example.comwp_:options:notoptions" 1412273198.435885 "GET" "example.comwp_:options:notoptions" 1412273198.436022 "EXISTS" "example.comwp_:options:alloptions" 1412273198.436157 "GET" "example.comwp_:options:alloptions" 1412273198.438298 "EXISTS" "example.comwp_:options:notoptions" 1412273198.438418 "GET" "example.comwp_:options:notoptions" 1412273198.438598 "EXISTS" "example.comwp_:options:alloptions" 1412273198.438700 "GET" "example.comwp_:options:alloptions" 1412273198.439449 "EXISTS" "example.comwp_:options:notoptions" 1412273198.439560 "GET" "example.comwp_:options:notoptions" 1412273198.439746 "EXISTS" "example.comwp_:options:alloptions" 1412273198.439844 "GET" "example.comwp_:options:alloptions" 1412273198.440764 "EXISTS" "example.comwp_:options:notoptions" 1412273198.440868 "GET" "example.comwp_:options:notoptions" 1412273198.441035 "EXISTS" "example.comwp_:options:alloptions" 1412273198.441149 "GET" "example.comwp_:options:alloptions" 1412273198.441813 "EXISTS" "example.comwp_:options:notoptions" 1412273198.441913 "GET" "example.comwp_:options:notoptions" 1412273198.442023 "EXISTS" "example.comwp_:options:alloptions" 1412273198.442121 "GET" "example.comwp_:options:alloptions" 1412273198.442652 "EXISTS" "example.comwp_:options:notoptions" 1412273198.442773 "GET" "example.comwp_:options:notoptions" 1412273198.442874 "EXISTS" "example.comwp_:options:alloptions" 1412273198.442974 "GET" "example.comwp_:options:alloptions" 

Nhấn CTRL-C để dừng kết quả .

Điều này rất hữu ích để biết chính xác những truy vấn mà Redis đang xử lý.

Kết luận

Sau khi làm theo hướng dẫn này, WordPress bây giờ sẽ được cấu hình để sử dụng Redis làm bộ nhớ cache trên Ubuntu 14.04.

Dưới đây là một số hướng dẫn quản trị và bảo mật bổ sung cho WordPress mà bạn có thể quan tâm:

Cách cấu hình các bản cập nhật và cài đặt bảo mật trong WordPress trên Ubuntu

Cách sử dụng WPScan để kiểm tra các plugin và chủ đề rủi ro bảo mật trong Wordpress

Cách sử dụng WP-CLI để quản lý trang web WordPress của bạn từ dòng lệnh


Tags:

Các tin liên quan

Cách cấu hình giám sát Sensu, RabbitMQ và Redis trên Ubuntu 14.04
2014-09-29