Hướng dẫn học: Caching website với CodeIgniter

Hướng dẫn học: Caching website với CodeIgniter

Nội dung :

  • Tại sao cần phải caching website
  • Sự khác biệt giữa caching và không caching
  • Làm thế nào để caching trong CodeIgniter

1.Tại sao cần phải caching website:

- Trước hết , bạn hiểu như thế nào là caching : Web caching là việc lưu trữ bản sao của những tài liệu web sao cho gần với người dùng, cả về mặt chức năng trong web client hoặc những web caching servers riêng biệt

- Ưu điểm :

  • Load nội dung nhanh hơn
  • Hạn chế việc truy vấn trực tiếp vào Databse

2.Sự khác biệt giữa caching và không caching

Không sử dụng caching :

  • • Kết nối MySQL Database
  • • Lấy 10 item trong database
  • • Sắp xếp nhửng Item theo thứ tự
  • • Đọc template file cho web sau đó cho việc hiển thị
  • • Trả kết quả về phía người dùng

- Nếu trong 1 thời gian ngắn có 2 lượt truy cập, thì các thực thi trên không đáng để quan tâm. Nhưng nếu khoảng 500 lượt truy cập trong 1 giờ chẳng hạng thì nó vấn đề mà chúng ta cần phải quan tâm. Liệu Server của bạn có thể đảm đương 500 x (các thực thi trên) không và có thể lượt truy cập còn hơn thế nữa

-Ở đây mình xin nói thêm “làm sao thống kê được lượt truy cập” . Các bạn có thể tìm hiểu ứng dụng miễn phí google analytics của google

Sử dụng caching :

Để làm giảm tải các truy vấn tới CSDL ta có thể sử dụng kĩ thuật Caching website.

Ví dụ :

Trong 1 ngày đó , tôi là người truy cập đầu tiên vào website : http://qhonline.info/news

Thì webserver sẽ thực thi các bước như sau :

  • • Kết nối MySQL Database
  • • Lấy 10 item trong database
  • • Sắp xếp nhửng Item theo thứ tự
  • • Đọc template file cho web sau đó cho việc hiển thị
  • • Trả kết quả về phía người dùng

Sau đó lưu nội dung hiển thị http://qhonline.info/news vào 1 file text đã được mã hóa trên webserver
Kế tiếp sau tôi là các user cũng truy cập đại chỉ : http://qhonline.info/news nhưng lần này hệ thống không truy vấn vào CSDL như các bước trên , mà nó sẽ tìm file đã được cache và đọc nó, và như thế 100 người hay 1000 người … truy cập vào http://qhonline.info/news thì cũcng chỉ đọc nội dung file cached
- Việc đọc nội dung 1 file text với việc truy vấn vào CSDL thì rõ ràng có sự khác biệt rất lớn về cách xử lý cũng như tốc độ load.

Bạn có thể xem hình mô tả bên dưới

Hướng dẫn học: Caching website với CodeIgniter

3.Làm thế nào để caching trong CodeIgniter :

- Ví dụ : tôi truy cập vào link sau : http://qhonline.info/news/bongba
Như vậy trong ứng dụng của tôi cần có

Controller : news và function bongda của Controller news

<?php
class News extends Controller { 

      function __construct(){
        parent::controller();
               //code here
               ………….
    }

        function bongda(){
         //kết nối CSDL
         //……………
         //loadview();
         }
}

- Làm sao để caching website với nội dung http://qhonline.info/news/bongba
- Bạn thêm hàm :

$this->output->cache($n) 

dưới cùng của function bongda() với n là thời gian làm mới nội dung cache được tính bằng phút
Xem có thể xem thêm userguide về hàm này tại : http://codeigniter.com/user_guide/general/caching.html
Như vậy class có caching của chúng ta bây giờ là :

<?php
class News extends Controller { 

      function __construct(){
        parent::controller();
               //code here
               ………….
    }

        function bongda(){
         //kết nối CSDL
         //……………
         //loadview();
         $this->output->cache(5) ; // thời gian làm mới là sao 5 phút nếu có lượt truy cập vào nội dung này
         }
}

Nếu bạn muốn caching toàn bộ cho controller news thì thêm đoạn code $this->output->cache() vào cuối của hàm :

function __construct(){..} 

<?php
class News extends Controller { 

      function __construct(){
        parent::controller();
               //code here
               ………….
                $this->output->cache(5) ; // thời gian làm mới là sao 5 phút nếu có lượt truy cập vào nội dung này
    }

        function bongda(){
         //kết nối CSDL
         //……………
         //loadview();
         }
}

Các file cache được lưu trong thư mục system/cache của CodeIgniter

Bạn thấy bài viết này như thế nào?: 
No votes yet
Ảnh của Khanh Hoang

Khanh Hoang - Kenn

Kenn is a user experience designer and front end developer who enjoys creating beautiful and usable web and mobile experiences.

Quảng cáo việc làm

 

Thích hợp các bạn nữ mảng thợ may làm việc tại nước NGA

Đơn hàng Tuyển dụng 100 Thợ may đi Nga(đợt 1 tháng 3.2021, đợt 2 tháng 5.2021). Lương thực lãnh 800 USD, bao ăn ở, vé máy bay và visa, phí xuất cảnh(1800 USD)trả khi đi làm có lương. Bạn có thể liên hệ CÔNG TY qua Phone/Zalo: (+84) 944 225 212. Công ty sẽ tư vấn cho bạn.

Xem chi tiết: >>> https://bit.ly/3o9NOfR

Advertisement

 

jobsora

Dich vu khu trung tphcm

Dich vu diet chuot tphcm

Dich vu diet con trung

Quảng Cáo Bài Viết

 
AVG chính thức phát sóng

AVG chính thức phát sóng

Sau hơn một năm phát sóng thử nghiệm, hệ thống truyền dẫn phát sóng truyền hình kỹ thuật số đa kênh của Công ty cổ phần Nghe nhìn toàn cầu (AVG) chính thức đi vào hoạt động từ ngày 11/11/2011.

Các phím ẩn thú vị của bàn phím iPad trên iOS 5

Các phím ẩn thú vị của bàn phím iPad trên iOS 5

Ở phiên bản hệ điều hành iOS 5 dành cho iPad, bàn phím ảo có thể tách ra làm đôi. Tuy nhiên, có một số phím ẩn đã được Apple tích hợp thêm vào.

Yahoo Messenger

Những ứng dụng di động thịnh hành tại Việt Nam

Việc lựa chọn phần mềm tùy thuộc vào nhu cầu của mỗi người và có thể rộ lên theo trào lưu, nhưng có những ứng dụng phổ biến trong một thời gian dài và gần như ai cũng biết đến khi sử dụng smartphone, tablet.