日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

php怎样数据缓存文件,php数据缓存到文件类设计

發布時間:2025/3/11 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php怎样数据缓存文件,php数据缓存到文件类设计 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

// 自定義緩存類

class Cache_Filesystem {

// 緩存寫保存

function set ($key, $data, $ttl) {

//打開文件為讀/寫模式

$h = fopen($this->get_filename($key), ‘a+‘);

if (!$h) throw new Exception("Could not write to cache");

flock($h, LOCK_EX); //寫鎖定,在完成之前文件關閉不可再寫入

fseek($h, 0); // 讀到文件頭

ftruncate($h, 0); //清空文件內容

// 根據生存周期$ttl寫入到期時間

$data = serialize(array(time()+$ttl, $data));

if (fwrite($h, $data) === false) {

throw new Exception(‘Could not write to cache‘);

}

fclose($h);

}

// 讀取緩存數據,如果未取出返回失敗信息

function get ($key) {

$filename = $this->get_filename($key);

if ( !file_exists( $filename ) ) {

return false;

}

$h = fopen($filename, ‘r‘);

if (!$h) return false;

// 文件讀取鎖定

flock($h, LOCK_SH);

$data = file_get_contents($filename);

fclose($h);

$data = @unserialize($data);

if ( !$data ) {

// 如果反序列化失敗,則徹底刪除該文件

unlink($filename);

return false;

}

if (time() > $data[0]) {

// 如果緩存已經過期,則刪除文件

unlink($filename);

return false;

}

}

// 清除緩存

function clear ( $key ) {

$filename = $this->get_filename($key);

if (file_exists($filename)) {

return unlink($filename);

} else {

return false;

}

}

// 獲取緩存文件

private function get_filename ($key) {

return ‘./cache/‘ . md5($key);

}

}

調用

require ‘./4.3-cache_class.php‘;

// 創建新對象

$cache = new Cache_Filesystem();

function getUsers () {

global $cache;

// 自定義一個緩存key唯一標識

$key = ‘getUsers:selectAll‘;

// 檢測數據是否緩存

if ( !$data = $cache->get( $key ) ) {

// 如果沒有緩存,則獲取新數據

$db_host = ‘localhost‘;

$db_user = ‘root‘;

$db_password = ‘root‘;

$database = ‘ecshop_test‘;

$conn = mysql_connect( $db_host, $db_user, $db_password);

mysql_select_db($database);

//執行sql查詢

$result = mysql_query("select * from ecs_users");

$data = array();

// 將獲取到的數據放入數組$data中

while ( $row = mysql_fetch_assoc($result)) {

$data[] = $row;

}

// 保存該數據到緩存中,生存周期為10分鐘

$cache->set($key, $data, 10);

}

return $data;

}

try {

$users = getUsers();

print_r($users);

$key = ‘getUsers:selectAll‘;

//$cache->clear($key);

} catch (Exception $e) {

print $e->getMessage();

}

原文:http://www.cnblogs.com/chengzhi59/p/7419523.html

總結

以上是生活随笔為你收集整理的php怎样数据缓存文件,php数据缓存到文件类设计的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。