Redis là một nguồn mở (được cấp phép BSD), kho lưu trữ cấu trúc dữ liệu trong bộ nhớ, được sử dụng làm cơ sở dữ liệu, bộ nhớ cache và môi giới tin nhắn. Nó có thể được kết hợp với các cơ sở dữ liệu khác như MySQL để cung cấp cơ chế lưu trữ các truy vấn của bạn.
Trong bài viết này, chúng tôi sẽ hướng dẫn cách lưu vào bộ nhớ cache các truy vấn MySQL được yêu cầu để hiển thị các trang WordPress. Điều này sẽ mang lại cho chúng tôi mức tăng hiệu suất đáng kể, mặc dù có một số lưu ý.
Giới thiệu về bộ nhớ đệm WordPress tốt hơn
WordPress sử dụng cơ sở dữ liệu MySQL để lưu vào bộ đệm các đối tượng ứng dụng nội bộ (breadcrumbs, menu item, v.v.) có thể tốn kém để tạo. Vì cơ sở dữ liệu cũng xử lý các truy vấn cho các yêu cầu trang nên đây có thể là nút thắt cổ chai phổ biến nhất và thường gây ra thời gian tải tăng lên.
Redis cung cấp cơ chế bộ nhớ đệm hoạt động như một sự thay thế cho cơ sở dữ liệu MySQL. Nếu người dùng truy cập một trang WordPress, các truy vấn MySQL cần thiết để tạo trang sẽ được phân phát thông qua Redis, nơi lưu trữ kết quả. Điều này dẫn đến thời gian tải nhanh như chớp, có thể so sánh với các trang tĩnh.
Một lựa chọn bộ nhớ đệm phổ biến khác là Memcached. Tuy nhiên, Redis thực hiện hầu hết mọi thứ mà Memcached làm, vì vậy chúng tôi sẽ sử dụng lưu trữ ScaleGrid cho Redis ™ * vì lợi ích của hướng dẫn này.
Redis Caching hoạt động như thế nào?
Khi người dùng yêu cầu trang WordPress lần đầu tiên, một truy vấn MySQL sẽ được thực hiện trên máy chủ. Redis lưu vào bộ nhớ cache truy vấn này, vì vậy khi người dùng khác yêu cầu cùng một trang WordPress, kết quả sẽ được cung cấp từ Redis mà không cần truy vấn lại cơ sở dữ liệu.
Nếu truy vấn không được lưu vào bộ nhớ cache trong Redis, thì kết quả được cung cấp bởi MySQL, sau đó được thêm vào bộ nhớ cache của Redis.
Nếu một giá trị cụ thể được cập nhật trong cơ sở dữ liệu, giá trị Redis tương ứng sẽ bị vô hiệu hóa để ngăn dữ liệu bộ nhớ cache xấu được cung cấp cho người dùng.
Yêu cầu hướng dẫn
Đây là danh sách các công nghệ được sử dụng trong bài viết này:
- 2 cài đặt WordPress (có và không có plugin, cho điểm chuẩn)
- Máy chủ Redis ™
- Plugin Redis WP Object Cache
Cài đặt WordPress
Bạn có thể tải xuống phiên bản WordPress mới nhất tại đây và thiết lập hai bản cài đặt khác nhau trên một máy chủ như Heroku hoặc AWS.
Máy chủ Redis
ScaleGrid cung cấp hỗ trợ đẳng cấp thế giới cho các cụm Redis ™ Standalone và Master / Slave với các tính năng bảo mật nâng cao. Chúng tôi sẽ sử dụng một cụm Redis ™ độc lập được lưu trữ trên ScaleGrid với chiến lược bộ nhớ đệm Allkeys-LRU và bạn có thể đăng ký dùng thử miễn phí 30 ngày dịch vụ lưu trữ Redis ™ của chúng tôi để hỗ trợ thực hiện hướng dẫn này.
Redis WP Object Cache Plugin
Plugin này được sử dụng làm trình đơn thả vào cài đặt WordPress của bạn và có thể được định cấu hình để sử dụng máy chủ Redis ™. Bạn có thể tìm thấy plugin tại đây.
Hướng dẫn thiết lập:Redis Object Cache cho WordPress
Đây là các bước để cài đặt Plugin Redis Object Cache trên bản cài đặt WordPress.
Bước 1:Cài đặt Trình cắm Redis Cache
Hướng dẫn này giả định rằng bạn đã thiết lập xong hai bản cài đặt mới của WordPress. Trên một trong số chúng, bạn cần cài đặt plugin Redis Object Cache. Sau khi cài đặt xong plugin, bạn có thể kích hoạt nó từ menu plugin.
Bước 2:Tìm Redis trong Cài đặt của bạn
Khi plugin được kích hoạt, tùy chọn Redis sẽ xuất hiện trong Menu Cài đặt.
Bước 3:Thêm cấu hình WordPress
Sau khi thiết lập plugin, chúng ta cần thêm các tùy chọn cấu hình vào tệp cấu hình WordPress. Tối thiểu, bạn cần thiết lập các tùy chọn sau:
define('WP_REDIS_HOST', ''); define('WP_REDIS_PASSWORD', '');
Bạn có thể tìm thấy các tùy chọn trên trên trang Chi tiết Cụm ScaleGrid cho Redis ™.
Lưu cấu hình và bật Bộ đệm đối tượng. Nếu xác thực đúng, bạn sẽ thấy màn hình sau:
Tại thời điểm này, Redis đã được định cấu hình làm bộ nhớ đệm cho cài đặt WordPress của bạn.
Giám sát và gỡ lỗi các truy vấn WordPress
Tất cả các cụm Redis đều được cài đặt công cụ giao diện dòng lệnh Redis (redis-cli) mà bạn có thể sử dụng để theo dõi các yêu cầu truy vấn đến từ WordPress. Dưới đây là ảnh chụp màn hình về cách thức này có thể trông như thế nào:
Nếu bạn không thấy bất kỳ đầu ra nào trên bảng điều khiển, hãy truy cập trang web WordPress và làm mới.
Các chỉ số WordPress &Redis cần theo dõi
Chỉ số chính cần theo dõi ở đây là thời gian tải trang. Đây là cấu hình mặc định mà chúng tôi đang sử dụng để cài đặt mới:
- WordPress:4.9.5
- Redis:v.4.0.2
- Chủ đề WordPress:Twenty Seventeen
Dựa trên cài đặt mới trên các thông số trên, chúng tôi có thể thấy thời gian tải trang giảm gần 50%:
- Không có Redis Object Cache = ~ 900ms
- Với Redis Object Cache = ~ 400ms
Nhược điểm của Redis Object Cache
Có một số lưu ý khi sử dụng phương pháp Redis Object Cache trên WordPress. Cơ chế bộ nhớ đệm không hoạt động tốt nếu bạn đã cài đặt nhiều plugin và chủ đề. Điều này là do thực tế là tất cả dữ liệu của họ cũng cần được lưu vào bộ nhớ đệm với Redis.
Bạn cũng có thể tìm hiểu cách Lưu vào bộ nhớ cache Tweet bằng Node.js, Redis và Socket.io trong bài viết trước của chúng tôi.
Như mọi khi, nếu bạn xây dựng một thứ gì đó tuyệt vời, hãy tweet cho chúng tôi về nó @scalegridio. Nếu bạn cần trợ giúp về việc quản lý hoặc lưu trữ Cơ sở dữ liệu MongoDB® hoặc Redis ™, hãy liên hệ với chúng tôi theo địa chỉ [email protected].