Cache bằng code vẫn hơn và mình dùng 1 đoạn đó để thực hiện 1 chức năng : chỉ lưu lại tối đa 10 file mới nhất mà user tải lên.
Vậy cái mảng phát sinh từ array_map('filemtime', $items) đâu có được sử dụng đâu. Cache vài trăm GB lận cụ, mem cache hình như cache trên RAM đâu đủ đô
Đúng ra là khai báo 1 biến để lưu array_map('filemtime', $items), nhưng nó là biến tạm và không sử dụng lại nên mình gộp lại cho nhanh, gọn và lẹ.
Mình thắc mắc từ đầu tới giờ là cái array_map('filemtime', $items) đóng vai trò gì ấy. Do mình chưa hiểu rõ array_multisort() trong code bác chia sẻ ở trên hoạt động thế nào, đóng vai trò gì trong việc xóa cache quá cache_time
RAM ko đủ 1 phần, 1 phần là mình đọc tài liệu thấy nó cài đặt cho từng domain nữa nên hao càng thêm hao. Cache file sài chung được
Ạ! array_map('filemtime', $items) nó sẽ trả về 1 mảng có chứa filetime của thằng $items. Mình dùng nó cho gọn, còn đầy đủ của nó thì phải qua 1 loop để lấy danh sách filetime và lưu trong một biến. Biến này là dữ liệu để sắp xếp cho cái $items. Cách dùng ở trên có ưu điểm là không loop hết mà chỉ loop đến đoạn có chứa các file hết hạn. P / S : Có lẽ hơi loãng chủ đề của chủ thớt nên tạo 1 thread mới thì hơn. Và đoạn code đó thích hợp với yêu cầu của mình, có thể yêu cầu của bạn sẽ khác nên đoạn code đó sẽ không thích hợp!
Liên quan gì domain đâu bác. Bác đặt thêm prefix cho key là được Chi phí cho RAM rẻ hơn rất nhiều cho chi phí maintain khác.
Là thằng array _multisort() nó tự hiểu là phải sắp xếp list items theo danh sách tăng dần của thời gian cache từng item luôn sao bác. Sao nó hiểu được nhỉ. Thấy thêm disk được chứ thêm RAM là nâng cấp luôn vps hoặc dedicated server mà.
Đoạn này bên php. net dễ hiểu nè @Nai : PHP: <?php$array = array('Alpha', 'atomic', 'Beta', 'bank');array_multisort(array_map('strtolower', $array), SORT_ASC, SORT_STRING, $array);print_r($array);?>
Nếu cache file thì khó khăn trong việc scale lên nhiều server, cache sẽ không đồng bộ giữa các server. Đấy là kinh nghiệm của mình thôi
Khi làm mỗi site mới bác lại mua thêm 1 ip cho mỗi domain à? Vì như bác nói là server, thì chắc sẽ chứa nhiều site
Cái cách cache của mình là nhiều site dùng chung data đó cụ. Em đó giờ chưa bao giờ 1 site chạy 1 server hết chứ đừng nói là nhiều server (Trừ site gì căng quá cần reverse proxy)
Thank bác, giờ hiểu rồi. Cụ thể là mảng thứ 2 trở đi sẽ sort dựa theo vị trí index của mảng đầu tiên.
Giờ mình muốn lấy cái id như này thì như nào vậy mọi người cái ID này nó luôn ở cuối tieu-de-abc-ID.html tieu-de-dai-hon-abc-ID.html
PHP: <?php$uri = 'tieu-de-abc-123456789.html';if (preg_match(($regex = '/(.*?)-([0-9]{1,21})\.html$/'), $uri)){ echo preg_replace($regex, '$2', $uri);}else{ // false}?>
Bạn thử chạy đoạn mã đó chưa? Mình kiểm tra các input : tieu-de-abc-123456789.html hoặc tieu-de-4-123456789.html hoặc 4-123456789.html thì output đều là 123456789 mà.