訪問在記憶體中 以md5($sql)進行訪問
<?php
//查詢資料庫,使用快取機制 簡單列子
$mem= new memcache;
//進行連線
$mem->addserver("127.0.0.1",11211);
//進行資料庫 sql拼接
//$sql= " select * from user";
//以md5方式 作為鍵值key 32
$key= md5($sql);
//取資料 從資料庫取值
$data= $mem->get($key);
//判斷資料$data是否有值
if(empty($data))
catch(pdoexception $e)
//執行查詢語句,獲得資料
$stmt = $pdo->prepare($sql);
$stmt->execute();
$data= $stmt->fetchall(pdo::fetch_assoc);
$mem->set($key,$data,memcache_compressed,10);
echo "從資料庫取值放在記憶體中呢";
}echo"
";";print_r($data);
echo"
執行結果:
第一次:
從資料庫取值放在記憶體中呢
array( [0] => array
([id] => 25
[username] =>
[password] => 2939d0369753eab0bb6313cf02ab2dc2
[regtime] => 1429426065
[email] => [email protected]
[token] => d41d8cd98f00b204e9800998ecf8427e
[token_exptime] => 1429512465
[status] => 1
)[1] => array
([id] => 34
[username] =>
[password] => 2939d0369753eab0bb6313cf02ab2dc2
[regtime] => 1429447082
[email] => [email protected]
[token] => b8c9a6c622c3f505f028c35557e0ed18
[token_exptime] => 1429533482
[status] => 1
))
每隔10s從資料庫進行取資料
array( [0] => array
([id] => 25
[username] =>
[password] => 2939d0369753eab0bb6313cf02ab2dc2
[regtime] => 1429426065
[email] => [email protected]
[token] => d41d8cd98f00b204e9800998ecf8427e
[token_exptime] => 1429512465
[status] => 1
)[1] => array
([id] => 34
[username] =>
[password] => 2939d0369753eab0bb6313cf02ab2dc2
[regtime] => 1429447082
[email] => [email protected]
[token] => b8c9a6c622c3f505f028c35557e0ed18
[token_exptime] => 1429533482
[status] => 1
))
分布式快取
分布式快取 原則來說跟應用伺服器分布式應該是一樣,但快取是有狀態的。怎麼樣提高命中?1.最原始的演算法 那就是key hash取模,取到伺服器ip。在大量伺服器伸縮行有問題,加入一台伺服器就有可能讓所有的快取都失效。如 key hash 後是100,取10膜是0,取11膜 1,101 取10膜是1,...
分布式快取
網際網路發展的同時,也引領者相關技術的發展與變革,比如集群 高併發 負載均衡 高可用 海量資料的處理 系統安全 分布式快取等各方面的相關技術。簡單談一下分布式快取技術。2 三層架構 1 web層 表現層 主要對使用者資料接收,以及資料處理完成後返回,為客戶端提 用程式的訪問 2 應用層 對業務的處理...
分布式快取
分布式快取 1 什麼是分布式快取?在高併發的環境下,大量的i o處理與cpu的處理速度顯然不在同乙個數量級,從減輕資料庫的壓力和提高系統的響應速度兩個角度來考慮,因而都會在資料庫之前加一層快取。由於單機的記憶體資源和承載能力有限,因而可以採用多台伺服器來用作快取,使得多台快取伺服器形同一台,並且不會...