<pre id="bbfd9"><del id="bbfd9"><dfn id="bbfd9"></dfn></del></pre>

          <ruby id="bbfd9"></ruby><p id="bbfd9"><mark id="bbfd9"></mark></p>

          <p id="bbfd9"></p>

          <p id="bbfd9"><cite id="bbfd9"></cite></p>

            <th id="bbfd9"><form id="bbfd9"><dl id="bbfd9"></dl></form></th>

            <p id="bbfd9"><cite id="bbfd9"></cite></p><p id="bbfd9"></p>
            <p id="bbfd9"><cite id="bbfd9"><progress id="bbfd9"></progress></cite></p>
            php語言

            PHP內存緩存Memcached類實例

            時間:2025-05-03 03:38:37 php語言 我要投稿
            • 相關推薦

            PHP內存緩存Memcached類實例

              PHP內存緩存Memcached類,以實例形式分析了PHP內存緩存Memcached的實現方法,是php操作memcached的典型應用,非常具有實用價值,需要的朋友可以參考下。

              具體實現方法如下:

              復制代碼 代碼如下:

              <?PHP

              class MemcacheModel {

              private $mc = null;

              /**

              * 構造方法,用于添加服務器并創建memcahced對象

              */

              function __construct(){

              $params = func_get_args();

              $mc = new Memcache;

              //如果有多個memcache服務器

              if( count($params) > 1){

              foreach ($params as $v){

              call_user_func_array(array($mc, 'addServer'), $v);

              }

              //如果只有一個memcache服務器

              } else {

              call_user_func_array(array($mc, 'addServer'), $params[0]);

              }

              $this->mc=$mc;

              }

              /**

              * 獲取memcached對象

              * @return object memcached對象

              */

              function getMem(){

              return $this->mc;

              }

              /**

              * 檢查mem是否連接成功

              * @return bool 連接成功返回true,否則返回false

              */

              function mem_connect_error(){

              $stats=$this->mc->getStats();

              if(emptyempty($stats)){

              return false;

              }else{

              return true;

              }

              }

              private function addKey($tabName, $key){

              $keys=$this->mc->get($tabName);

              if(emptyempty($keys)){

              $keys=array();

              }

              //如果key不存在,就添加一個

              if(!in_array($key, $keys)) {

              $keys[]=$key;  //將新的key添加到本表的keys中

              $this->mc->set($tabName, $keys, MEMCACHE_COMPRESSED, 0);

              return true;   //不存在返回true

              }else{

              return false;  //存在返回false

              }

              }

              /**

              * 向memcache中添加數據

              * @param string $tabName 需要緩存數據表的表名

              * @param string $sql 使用sql作為memcache的key

              * @param mixed $data 需要緩存的數據

              */

              function addCache($tabName, $sql, $data){

              $key=md5($sql);

              //如果不存在

              if($this->addKey($tabName, $key)){

              $this->mc->set($key, $data, MEMCACHE_COMPRESSED, 0);

              }

              }

              /**

              * 獲取memcahce中保存的數據

              * @param string $sql 使用SQL的key

              * @return mixed 返回緩存中的數據

              */

              function getCache($sql){

              $key=md5($sql);

              return $this->mc->get($key);

              }

              /**

              * 刪除和同一個表相關的所有緩存

              * @param string $tabName 數據表的表名

              */

              function delCache($tabName){

              $keys=$this->mc->get($tabName);

              //刪除同一個表的所有緩存

              if(!emptyempty($keys)){

              foreach($keys as $key){

              $this->mc->delete($key, 0); //0 表示立刻刪除

              }

              }

              //刪除表的所有sql的key

              $this->mc->delete($tabName, 0);

              }

              /**

              * 刪除單獨一個語句的緩存

              * @param string $sql 執行的SQL語句

              */

              function delone($sql){

              $key=md5($sql);

              $this->mc->delete($key, 0); //0 表示立刻刪除

              }

              }

              ?>

              希望本文所述對大家的PHP程序設計有所幫助。

            【PHP內存緩存Memcached類實例】相關文章:

            PHP緩存技術10-08

            php緩存技術經典總結09-09

            PHP實現RSA加密類的實例解析08-23

            php常用的驗證類以及正則實例08-27

            關于php緩存技術的總結10-29

            php頁面緩存實現方法07-20

            PHP常用緩存技術介紹10-21

            怎么用PHP安裝memcached擴展筆記09-04

            PHP文件緩存的性能測試11-10

                    <pre id="bbfd9"><del id="bbfd9"><dfn id="bbfd9"></dfn></del></pre>

                    <ruby id="bbfd9"></ruby><p id="bbfd9"><mark id="bbfd9"></mark></p>

                    <p id="bbfd9"></p>

                    <p id="bbfd9"><cite id="bbfd9"></cite></p>

                      <th id="bbfd9"><form id="bbfd9"><dl id="bbfd9"></dl></form></th>

                      <p id="bbfd9"><cite id="bbfd9"></cite></p><p id="bbfd9"></p>
                      <p id="bbfd9"><cite id="bbfd9"><progress id="bbfd9"></progress></cite></p>
                      飘沙影院