/ / Codeigniter / Comments (5)

Caching Driver trong codeIgniter

Bài trước mình đã giới thiệu cho các bạn tầm quan trọng của cache dữ liệu trên website các cách Caching website trong codeIgniter,tiếp tục với loại bài Caching website trong bài này mình sẽ hướng dẫn các bạn sử dụng Caching Driver trong codeIgniter và đây cũng là cách mình sử dụng rất nhiều trong khi làm việc.
– Codeigniter có thể tương thích với hệ thống cache ngoài và điều này thường phải yêu cầu hỗ trợ APC Memcache và file/disk based cache.Thực hiện cache theo cách này rất đơn giản là cách chuyển đổi giữa cache driver.

Caching Driver trong codeIgniter

Caching Driver trong codeIgniter

Caching Driver trong codeIgniter

Các phương thức sử dụng trong cache đối tượng trong codeIgniter

1.Lấy dữ liệu bằng phương thức get()

Cú pháp:

get($key)
  1. Tham số: $key(string) – tên cache
  2. Trả về: Trả về FALSE nếu không tồn tại và trả về dữ liệu nếu có

Ví dụ:

$products_data = $this->cache->get('product');

2.Lưu dữ liệu bằng phương thức save()

Cú pháp:

save($key, $data, $time= 60)

– Các tham số trên có ý nghĩa:

  1. $key(string): tên cache
  2. $data: Dữ liệu muốn lưu
  3. $time: Thời gian muốn lưu tính theo giây

– Dữ liệu trả về sẽ là TRUE nếu thành công và ngược lại là FALSE
Ví dụ:

$this->cache->save('product', $products_data, 600);

– Ví dụ trên mình lưu dữ liệu trong biến $products_data vào key product trong thời gian 10 phút

3.Xóa dữ liệu bằng phương thức delete()

Cú pháp:

delete($key)
  1. Tham số: $key(string) – tên cache
  2. Trả về: TRUE nếu thành công và ngược lại là FALSE

Ví dụ:


$this->cache->delete('product');

4.Ví dụ tổng hợp


   function get_list_product()
   {
     //nếu không tồn tại biến cache product
     if ( ! $products_data = $this->cache->get('product'))
     {
         //lấy danh sách sản phẩm
         $this->load->model('product_model');
         $products_data = $this->product_model->get_list();
        
         //Lưu danh sách sản phẩm trong cache product thời gian 10 phút
         $this->cache->save('product', $products_data, 600);
     }
     return $products_data;
   }

So sánh giữa cache toàn trang và cache đối tượng

Cache toàn trang: Là lưu toàn bộ nội dung html của cả trang,kiểu này sẽ load nhanh hơn nhưng độ tùy biến không cao,thường được sử dụng cho những website tin tức,ít sử dụng session để hiển thị dữ liệu ra ngoài.
Cache đối tượng (object):Là loại lưu lại các biến thành 1 đối tượng,với cách này chúng ta có thể tùy biến dữ liệu cao hơn.Thường được lưu các biến dữ liệu nhiều hoặc những biến sử dụng câu truy vấn phức tạp,xử lý lâu
Tổng kết: Qua bài này mình đã giới thiệu với các bạn thêm 1 cách cache dữ liệu bằng Caching Driver trong CodeIgniter,ngoài ra trong codeigniter còn hỗ trợ thêm nhiều loại cache nữa như Cache databse,Redis Caching, Memcached Caching…các bạn có thể tham khảo thêm tại đây.Chúc các bạn áp dụng và lựa chọn kiểu cache tốt nhất phù hợp với dự án của mình.



22/05/2015
Written by nobitacnt

Trong bài viết không tránh khỏi những câu từ chưa chính xác,mong nhận được sự góp ý để website hoàn thiện hơn.Nếu thấy bài viết có ích với bạn hãy like và share để ủng hộ nhé :D.

Bài viết chùng chuyên mục

5 Comments

  1. dragon says:
     /  Reply

    Bài viết về cache rất hay

  2. Vung Pham says:
     /  Reply

    Hay qua. Nhung admin cho mình hỏi :
    Khi em muốn lưu cache mà khi nào em xóa thì nó mới mất. CHo tồn tài sống của cache là vô hạn đó admin ?

    • nobitacnt says:
       /  Reply

      Bạn có thể cấu hình thời gian thật cao lên là được mà có khác nào vô hạn đâu.Nếu trang nào bạn muốn cache vô hạn thì hãy sử dụng cache html thì hơn,còn nếu không bao giờ dữ liệu có thay đổi thì làm file html tĩnh luôn rồi 😀 .

  3. Truong Nguyen says:
     /  Reply

    Chưa sâu lắm

  4. Nguyen Phan says:
     /  Reply

    Mình tìm hiểu có một số loại cache như thế này: cache browser, cache view(cache file), cache object(cache driver or memcache), cache database. Mình tổng hợp mỗi bài một chút nên hiểu như vậy. Tìm một bài viết hoàn chỉnh mà không có, Bạn có từ khóa nào để mình tìm ra nội dung tổng hợp như vậy ko? Xin cảm ơn!

Gửi bình luận

Giới thiệu

Mình tạo ra blog này với mong muốn chia sẻ và học hỏi kinh nghiệm trong quá trình thiết kế website. Website đang trong quá trình phát triển chân thành cảm ơn mọi sự góp ý của các bạn để làm cho website ngày càng hoàn thiên.

DMCA.com Protection Status
Theo dõi qua Email

Tổng hợp các bài viết về

Hoc php - CodeIgniter Framework - Laravel Framework - PHP va MYSQL