Khi nói đến cache nói giúp website của bạn tăng tốc lên rất nhiều và giảm tải cho máy chủ của bạn rất tốt và có rất nhiều thể loại cache và cấp bậc cache khác nhau.
ví dụ điển hình như Có bộ nhớ đệm trình duyệt và bộ nhớ đệm HTML Page… chưa kể đến bộ nhớ đệm dành riêng di động và người dùng bla bla … phần mềm cache này và phầm mềm cache kia, cache cấp php , cache cấp máy chủ…
Nếu bạn chưa biết bạn đang và đã kích hoạt sử dụng được bao nhiêu thể loại cache, và đã kích hoạt đầy đủ cache cho website của bạn chưa thì bạn hãy tham khảo bài viết: 5 cấp độ cache website WordPress
Trong bài viết này, mình sẽ đề cập đến Object Cache là gì và nó hoạt động như thế nào với WordPress, nó giúp ích gì cho website của bạn. (Mình sẽ chia sẻ cả bao gồm Object Cache mà WordPress tích hợp sẵn trong WordPress core và Redis và Memcached và LSMemcached).
Chúng tôi cũng sẽ xem xét một số cách khác nhau mà bạn có thể triển khai loại bộ nhớ đệm này trên trang web của mình để cải thiện hiệu suất của nó.
Mục lục
- 1 Object Cache là gì
- 2 Object Cache hoạt động như thế nào
- 3 Khi nào nên sử dụng Object Cache
- 4 WP_Object_Cache là gì?
- 5 Redis và Memcached và LSMemcached là gì
- 6 Lựa chọn Redis hay Memcached hay LSmemcached
- 7 Kích hoạt WP_Object_Cache
- 8 Redis và Memcached và LSMemcached kích hoạt
- 9 Xóa clear Object Cached cho WordPress
Object Cache là gì
Cache (bộ nhớ đệm) là quá trình lưu trữ tạm thời dữ liệu được truy cập thường xuyên vào phân vùng riêng của bộ nhớ đệm để bạn có thể sử dụng lại cho các yêu cầu tiếp theo. bạn có thể hiểu đơn giản là không phải làm lại những thứ mà ta đã làm trước đó.
Object Cache là gì:
Object Cache (Object Caching) là tác động tăng tốc đến cơ sở dữ liệu.
Object Caching liên quan đến việc lưu trữ các kết quả truy vấn cơ sở dữ liệu (sql) để lần sau khi cần kết quả, nó có thể được phục vụ từ bộ nhớ đệm mà không cần phải truy vấn tìm kiếm lại cơ sở dữ liệu.
WordPress là trang web động chắc bạn đã từng nghe về điều đó mình sẽ giải thích qua.
khái niệm website động là ý nhắc tới những website sử dụng nhiều các cơ sở dữ liệu sql, còn website tĩnh thì ngược lại.
Với WordPress không thể thiếu cơ sở dữ liệu và đặc biệt không thể thiếu Object Caching để giúp tăng tốc website WordPress.
Nếu bạn chạy một trang web có lưu lượng traffic khủng và các yêu cầu đến các trang của bạn tạo ra một số lượng rất lớn các truy vấn cơ sở dữ liệu, máy chủ không có Object Cache máy chủ của bạn có thể nhanh chóng bị quá tải, từ đó ảnh hưởng tiêu cực đến hiệu suất trang web của bạn đặc biệt là xập luôn website. Lỗi 5xx
Vì vậy, khi Object Cache được bật trên trang web của bạn, nó có thể giúp giảm tải trên cơ sở dữ liệu và máy chủ của bạn và đồng thời cung cấp các truy vấn nhanh hơn rất nhiều.
Object Cache hoạt động như thế nào
<?php echo echo get_bloginfo('name'); ?>
Ví dụ Hàm code này máy chủ sẽ tính toán, lấy dữ liệu trong cơ sở dữ liệu của mình sẽ chạy ra tên website của bạn=> WP Tăng Tốc
Khi người người dùng yêu cầu, người dùng hỏi tên website của bạn là gì, nó sẽ chạy hàm ví dụ trên và ra kết quả là WP Tăng Tốc, khi người dùng 2 cũng hỏi câu hỏi tương tự tên website của bạn là gì, nó sẽ lấy luôn kết quả là WP Tăng Tốc đưa cho người dùng 2, người dùng thứ nhiều lần vẫn hỏi câu là tên website của bạn là gì nó trả lời nguyên si như vậy. Quá trình sẽ lập đi lập lại như vậy ( máy chủ của bạn không cần phải mỗi một người hỏi câu hỏi như nhau lại phải tính toán lại từ đầu cho mỗi người)
Giống như khi bạn 30 tuổi mà vẫn chưa lấy chồng mà hàng xóm hay hỏi cháu năm nay bao giờ lấy chồng, người đầu tiên bạn suy nghĩ một lúc trả lời ví dụ như là cháu tí nữa lấy, hôm sau ông hàng xóm khác vẫn hỏi câu đó cháu bao giờ lấy chồng, bạn sẽ trả lời ngay và không phải suy nghĩ là cháu tí nữa lấy, ông hàng xóm thứ nhiều lần vẫn hỏi câu hỏi như thế thì bạn vẫn trả lời nguyên si như vậy. Một thời gian sau bạn lấy chồng nhưng bạn không xóa dữ liệu cũ ( clear Object Cache) có người nào đó lại hỏi bao giờ lấy chồng bạn vẫn quen trả lời dữ liệu cũ là tí nữa cháu lấy. ( lúc này bạn cần phải xóa clear Object Cache đi để nạp lại dữ liệu trong bài viết này mình sẽ hướng dẫn clear cache Object Cache luôn)
Khi nào nên sử dụng Object Cache
1: Website của bạn là website động, WordPress là những website động. ( truy vấn nhiều cơ sở dữ liệu)
2: Máy chủ đang thừa nhiều ram và muốn tăng tốc độ website ( lý do hơi nhảm tí nhưng không sao, mua thêm ram để tăng tốc website phục vụ khách hàng thì tốt hơn)
3: Muốn giảm tải cpu chuyển bớt gánh nặng cho ram ( kinh nghiệm của mình nguyên lý mua cấu hình websever phải chuẩn 1:2 – tức 1 nhân cpu thì 2 gb ram)
4: Những website bán hàng plugin woocommerce, hay đang sử dụng page builder thì cực kì cần phải sử dụng cài này.
WP_Object_Cache là gì?
WordPress có tính hợp sẵn Object Cache có tên là WP_Object_Cache.
Được giới thiệu vào năm 2005, nó cung cấp một cách tự động lưu trữ bất kỳ dữ liệu nào từ cơ sở dữ liệu vào trong bộ nhớ PHP để ngăn các truy vấn lặp lại.
Tuy nhiên nhược điểm lớn của WP_Object_Cache khiến nó ít được nhiều người ưu chuộng là chỉ lưu trữ cache Object cho một lần với một tải trang — vì vậy chúng phải được xây dựng lại từ đầu khi người dùng truy cập vào trang web khác của bạn.
Hiểu ngắn gọn là khi bạn truy cập vào bài viết blog A của mình bạn hỏi tên website của bạn là gì thì trả là WP Tăng Tốc, xong bạn truy cập vào bài viết B trong website của mình bạn hỏi tên website bạn là gì thì lại phải tính toán lại từ đầu, không lấy dữ liệu được từ blog A cache kia để trả lời yêu cầu của trang B.
Mặc dù đây là một tính năng hữu ích của WordPress, nhưng nó thực sự vẫn chưa hiệu quả cho lắm và dù gì nó cũng chỉ là cấp php phần mềm nên tốc độ không thể nhanh được bằng cấp websever.
Yếu điểm của WP_Object_Cache là rất lớn vì vậy redis và memcached đã xuất hiện giải quyết cực tốt với vấn đề đó khi nó có thể được sử dụng để lưu vào bộ đệm các đối tượng giữa nhiều lần tải trang, nó là cấp websever lên tốc độ nhanh hơn cấp website php.
Các giải pháp tuyệt vời Object Caching như Redis và Memcached và LSMemcached giúp duy trì bộ nhớ đệm Object giữa các yêu cầu.
Điều này giúp tăng tốc độ phân phối các truy vấn cơ sở dữ liệu đồng thời giảm bớt khối lượng công việc của máy chủ của bạn.
Giờ chúng ta bắt đầu đi tìm hiểu về Redis và Memcached và LSMemcached nhé:
Redis và Memcached và LSMemcached là gì
Có 3 công cụ Object Object Cache phổ biến và tốt nhất hiện nay: Redis và Memcached và LSMemcached .
Cả 3 công cụ này đều là kho lưu trữ dữ liệu trong bộ nhớ đệm nhanh và mạnh mẽ có thể giảm tải cho cơ sở dữ liệu MySQL của trang web của bạn, đồng thời giảm thời gian phản hồi của trang web và tăng cường khả năng mở rộng và xử lý lưu lượng truy cập tăng lên của trang web.
Memcached đã từ lâu luôn là một lựa chọn bộ nhớ đệm tốt nhất dành cho những website đơn giản, nhưng Redis có thể làm mọi thứ mà Memcached có thể không làm được và với Redis có nhiều tính nâng cao hơn nhiều.
LSMemcached là một phiên bản mình đang sử dụng và rất tuyệt cũng mới xuất hiện cũng khá ít người biết đến và sử dụng tuy nhiên nó cực mạnh, LSMemcached nghĩa là litespeed Memcached, là một đứa con lai sao chép hoàn hảo phối giống giữa: Memcached và Redis, họ kết hợp những điểm tốt nhất và tuyệt vời nhất Memcached và Redis để tạo thành LSMemcached.
Lựa chọn Redis hay Memcached hay LSmemcached
Về cơ bản hiện tại với cá nhận mình: thì mình sẽ yêu tiên sử dụng redis, nếu redis lỗi hoạt động không trơn tru thì mình sẽ dùng memcached, rồi thích thì dev test dùng lsmemcached.
Kích hoạt WP_Object_Cache
Cái này được tích hợp sẵn trong WordPress core rồi.
Cài này được bật theo mặc định, bạn không cần phải làm gì đâu nó đã kích hoạt tự động cho bạn rồi.
Nhưng nếu bạn muốn đưa Object Cache của mình lên cấp độ tiếp theo để các truy vấn cơ sở dữ liệu của bạn được lưu trữ liên tục giữa các lần tải các trang, chạy bằng cấp websever thì bạn hãy kích hoạt Redis và Memcached và LSMemcached, mình sẽ chia sẻ ở phần dưới.
WP_Object_Cache thì so sánh hiệu năng với các Object Cache chuyên nghiệp như Redis và Memcached và LSMemcached, thì WP_Object_Cache không có cửa để so sánh hiệu năng, dù gì WP_Object_Cache cũng chỉ là cấp phần mềm php dạng mô phỏng những Object Cache cấp phần mềm websever.
Redis và Memcached và LSMemcached kích hoạt
Redis và Memcached và LSMemcached để kích hoạt được điểm mấu chốt bạn là:
- Cài đặt php extension
- Cài đặt kho lưu trữ mã nguồn của Redis và Memcached và LSMemcached.
- Kích hoạt theo cổng port mạng hoặc unix stocket.
- Plugin WordPress để clear xóa cache Object Cache ( cài này có thì càng tốt không có cũng không sao vẫn chạy được, để bạn dễ dàng điều khiển nó mình sẽ chia sẻ cài này ở phần dưới, lý do tại sao mình yêu plugin litespeed cache đến thế)
Kích hoạt theo unix stocket thì tốc độ truy xuất sẽ nhanh hơn 30% so với kích hoạt theo dạng cổng mạng port và unix stocket bảo mật tốt hơn tuy nhiên chỉ chạy được theo dạng mô hình websever nhỏ và vừa, còn lớn thì phải chạy theo cổng mạng mới chạy được.
Để kích hoạt được Redis và Memcached và LSMemcached, thì bạn phải là người quản trị viên máy chủ hay quản trị viên vps nhé thì bạn mới có quyền cài đặt.
Còn nếu bạn đang dùng share hosting thì bạn không có quyền truy cập vào quyền root ssh nên bạn chỉ lựa chọn những nhà share hosting nào cung cấp công nghệ này mà thôi.
Nếu bạn dùng share hosting thì bạn hãy bỏ qua phần hướng dẫn kích hoạt này nhé, bạn có thể xuống xem phần Plugin WordPress để clear xóa cache Object Cache.
Hướng dẫn kích hoạt LSMemcached
Đây là Object cache mình thấy mạnh nhất và tốt nhất, mình đang sử dụng và cảm thấy cực kì hài lòng về hiệu suất của nó đem lại nhưng yếu điểm lớn nhất là nó chưa ổn định mới trong quá trình dev. vì vậy nếu bạn triển khai trên website chính thì tốt hơn là hãy dùng redis hoặc memcached sẽ ổn định hơn.
Điều kiện để có thể kích hoạt được lsmemcached bạn phải sử dụng litespeed websever.
Trong trường hợp bạn nếu bạn đang dùng share hosting thì bạn phải lưu ý chọn những nhà cung cấp share hosting nào có công nghệ này nhé và liên hệ với nhà cung cấp share hosting em thấy bên mình có quảng cáo là có công nghệ này giờ em muốn sử dụng bạn hướng dẫn mình kích hoạt với, nếu bạn đang là người quản trị viên máy chủ hay đang sử dụng vps thì bạn có thể tham khảo bài viết hướng dẫn.
Mình có một bài viết hướng dẫn rất chi tiết hướng dẫn kích hoạt LSMemcached.
Bạn hãy tham khảo bài viết này để kích hoạt lên nhé, nếu bạn muốn sử dụng openlitespeed thì mình có seria hướng dẫn cài đặt openlitespeed từ a đến z, bạn có thể tham khảo bài viết: hướng dẫn cài đặt openlitespeed
Hướng dẫn kích hoạt memcached
Mình sẽ hướng dẫn kích hoạt trên centos 7 nhé, vì centos 7 là hệ điều hành linux nào websever mình yêu thích nhất, cài này mình hướng dẫn với websever nginx
cài đặt memcached
yum install memcached -y
Cài đặt Memcache và Memcached PHP Module
yum --enablerepo=remi,remi-php74 install php-pecl-memcached php-pecl-memcache
Nếu bạn muốn sử dụng phiên bản php thấp hơn, mình cài thì đây là phiên bản php 7.4 bạn hãy theo đoạn remi-php74
bằng phần bản bạn muốn ví dụ như 7.2 thay bằng remi-php72
, thay những con số phiên bản bạn muốn.
Cấu hình memcached
Bạn cần phải có công cụ nano để trình sửa biên tập nội dung.
Hướng dẫn cài đặt phần mềm nano trên centos.
yum install nano -y
Giờ cấu hình memcached với công cụ nano.
nano /etc/sysconfig/memcached
cấu hình memcached
PORT="11211" USER="memcached" MAXCONN="10240" CACHESIZE="128" OPTIONS="-l 127.0.0.1 -U 0"
xong bạn ấn CTRL + O và tiếp theo bạn ấn CTRL + X.
Khởi động Memcached.
chkconfig memcached on service memcached start
Cuối cùng khởi động lại PHP và web server và tận hưởng memcached
service php-fpm restart service nginx restart
Một bài viết này thì rất khó để có thể chia sẻ các kích hoạt từng cái một cho mọi người, mình sẽ hướng dẫn ở những bài viết khác hay bạn có thể lên google tự tìm hiểu nhé, mình chỉ chia sẻ về 2 cái mà mình thấy nhiều người dùng WordPress ưu chuộng nhất hiện nay ( litespeed và nginx)
Hướng dẫn kích hoạt redis
Mình có hướng dẫn chi tiết kích hoạt redis từ a đến z dành cho WordPress bạn có thể tham khảo bài viết: Hướng dẫn kích hoạt redis cho WordPress trên VPS
Xóa clear Object Cached cho WordPress
Khi nào nên xóa Object Cached, vô vàn lý do nhu cầu bạn muốn xóa Object Cached, để muốn nạp lại dữ liệu khi bạn muốn thay đổi gì đó trong cơ sở dữ liệu … giả sử như website của mình là wp tăng tốc giờ mình đổi là Gia Tuấn trong cơ sở dữ liệu ( trong phần bản wp-option
thì mình cũng cần phải clear cache để muốn thay đổi nó ngay lập tức.)
Bạn có thể clear xóa cache bằng lệnh ssh những cái này mình thấy rất là bất tiện hay đơn giản hơn một chút bạn sử dụng cpanel thì họ có hỗ trợ thì dễ dàng hơn một chút nhưng cũng khá bất tiện, nên mình sử dụng thì chỉ clear cache dashboard trong quản trị WordPress mà thôi – vì nó đơn giản nhanh và tiện.
để clear xóa Object Cached bạn phải sử dụng những plugin hỗ trợ.
Plugin mình đang sử dụng và mình rất yêu thích làm rất tốt khâu xóa Object Cached đó chính là plugin litespeed cache.
Mình là một fan hâm mô của plugin litespeed cache vì nó làm rất tốt.
Với litespeed cache bạn có thể dễ dàng xóa toàn bộ cache hay chỉ đơn giản là xóa Object Cached, plugin này nó hỗ trợ đầy đủ từ Redis và Memcached và LSMemcached, hỗ trợ đến tận chân răng.
Quảng cáo một chút với litespeed cache bạn dễ dàng điều khiển thời auto clear xóa Object Cached, điều khiển các thứ.
Thực sự thì nếu bạn dùng redis còn đỡ, redis có hỗ trợ WordPress nhưng với Memcached thì có cũng như không – nhưng plugin litespeed cache đã giải quyết tốt được vấn đề đó.
Nếu bạn đang sử dụng redis mà không thích sử dụng plugin litespeed thì bạn có thể sử dụng: redis cache plugin này làm cũng rất tốt.
Nếu trong trường hợp bạn dùng Memcached muốn xóa clear cache dashboard mà không muốn sử dụng plugin litespeed thì rất khó, như mình đã nói bên trên thì Memcached có plugin hỗ trợ WordPress có cũng như không, chắc chỉ có cách tốt nhất là bạn clear cache ở cấp máy chủ websever thôi nhé.
Tóm tắt:
Object Cached là một cấp độ cache không thể thiếu được trong WordPress, mỗi tội nó hơi ngốn ram một chút, nhưng những hiệu quả nó mang lại thì nó thực sự rất tuyệt vời.
Nếu bạn đang dùng WordPress khi kích hoạt được Object Cached theo cấp độ websever thì website của bạn sẽ tăng tốc rất đáng kể.
Còn nếu website của bạn là website tĩnh không có truy vấn cơ sở dữ liệu thì chả cần Object Cached làm gì, nhưng với WordPress thì không thể không có Object Cached đặc biệt là những website bán hàng sử dụng plugin woocommerce sử dụng cực nhiều truy vấn cơ sở dữ liệu.
Đây là tầng cache cấp độ thứ 2, trong 5 cấp độ cache bạn hãy kiểm tra xem website của bạn đã kích hoạt đầy đủ các bộ cache chưa nhé hãy tham khảo bài viết: 5 cấp độ cache thường dùng WordPress
Triều đã bình luận:
Trong WP Tăng Tốc
khi mình chạy lệnh
service php-fpm restart
service nginx restart
báo lỗi
Job for nginx.service failed because the control process exited with error code. See “systemctl status nginx.service” and “journalctl -xe” for details.
[FAILED]
bạn có thể giúp mình khắc phục được không.cảm ơn bạn.
Gia Tuấn đã bình luận:
Trong WP Tăng Tốc
lỗi này là do service webserver nginx. bạn phải vào đọc log để xem cụ thể như thế nào thì mới có thể tìm cách khắc phục được. cái này rất nhiều lý do nhưng phổ biến là do câu hình sai thì rất dễ gây lỗi service như thế này
Triều đã bình luận:
Trong WP Tăng Tốc
Cảm ơn bạn nhiều.sau khi bật Reverse Proxy Server (nginx) lên thì đã ok