流程: 從數據庫獲取信息 -> 封裝 -> 生成接口數據 應用場景:數據時效性,比較高的系統 學習要點: 1. 掌握如何獲取數據; 2. 掌握如何將獲取的數據生成通信數據; 詳細流程: http請求 -> 服務器 -> 查詢數據 -> 返回數據
文件鏈接:var/www/app/list.php
// 封裝輸出數據類require_once('./response.php');// 引入的 db.php 數據庫類需要進行改動require_once('./db.php');$page = isset($_GET['page']) ? $_GET['page'] : 1;$pageSize = isset($_GET['pagesize']) ? $_GET['pagesize'] : 1;if (!is_numeric($page) || !is_numeric($pageSize)) { return Response::show(401, '數據不合法');}$offset = ($page-1) * $pageSize;$sql = "select * from mk_user where score != 0 order by id desc limit " . $offset . "," . $pageSize;// $sql = "select * from mk_user";// $result = MySQL_query($sql, $connect);// echo mysql_fetch_row($result);// var_dump($result);try { $connect = Db::getInstance()->connect();} catch(Exception $e) { return Response::show(403, '數據庫連接失敗', $users);}$result = mysql_query($sql, $connect);$users = array();while ($user = mysql_fetch_assoc($result)) { $users[] = $user;}if($users) { return Response::show(200, '首頁數據獲取成功', $users);} else { return Response::show(400, '首頁數據獲取失敗', $users);}文件鏈接:var/www/app/db.php ~~~ class Db { static PRivate
} ~~~
流程:從數據庫獲取信息 -> 封裝(讀取緩存,再次讀?。?-> 返回數據 用途:減少數據庫壓力 學習要點: 1. 掌握靜態緩存如何設置緩存失效時間; 2. 如何設置緩存; 詳細流程:
文件連接:var/www/app/list.php ~~~
流程:http請求 -> 緩存(crontab從數據庫獲取緩存) -> 封裝并返回數據 學習要點: 1. 掌握如何編寫定時腳本程序 2. 理解服務器如何提前準備數據
增加crontab執行文件:var/www/app/cron.php
// 讓crontab定時執行的腳本程序 */5 * * * * /usr/bin/php /var/www/app/cron.php// 獲取user表中6條數據require_once('./db.php');require_once('./file.php');$sql = "select * from mk_user where score != 0 order by id desc";try { $connect = Db::getInstance()->connect();} catch(Exception $e) { // $e->getMessage(); // 鏈接失敗,在日志文件里記錄失敗的記錄 file_put_contents('./logs/' . date('y-m-d') . '.txt', $e->getMessage()); return;}$result = mysql_query($sql, $connect);$users = array();while ($user = mysql_fetch_assoc($result)) { $users[] = $user;}$file = new File();if($users) { // 有數據的話,把數據寫到緩存文件里 $file->cacheData('index_cron_cache', $users);} else { file_put_contents('./logs/' . date('y-m-d') . '.txt', "沒有相關數據");}return;上面的crontab沒5分鐘執行一次,當有數據時,在list.php文件開頭能夠查詢到數據:var/www/app/list.php
require_once('./response.php');require_once('./file.php');// 增加下面對緩存進行查詢$file = new File();$data = $file->cacheData('index_cron_cache');if ($data) { return Response::show(200, '首頁數據獲取成功', $data);} else { return Response::show(400, '首頁數據獲取失敗', $data);}require_once('./db.php');新聞熱點
疑難解答
圖片精選