<ruby id="bdb3f"></ruby>

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

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                PHP連接memcache 1. 將php\_memcache.dll放在php目錄下的ext目錄下 2. 在php.ini配置文件中, 確保安裝PHP與memcache的擴展:extension = php\_memcache.dll 3. 重啟apache,確認memcache擴展成功安裝 * [Memcache](https://www.php.net/manual/zh/class.memcache.php)— Memcache類 * [Memcache::add](https://www.php.net/manual/zh/memcache.add.php)('key',?'value',?MEMCACHE_COMPRESSED,?有效期-秒)— 增加一個條目到緩存服務器 * [Memcache::addServer](https://www.php.net/manual/zh/memcache.addserver.php)('localhost',11211)— 向連接池中添加一個memcache服務器 * [Memcache::close](https://www.php.net/manual/zh/memcache.close.php)()— 關閉memcache連接 * [Memcache::connect](https://www.php.net/manual/zh/memcache.connect.php)('127.0.0.1',?11211, timeout)— 打開一個memcached服務端連接 * [Memcache::decrement](https://www.php.net/manual/zh/memcache.decrement.php)(key,1)— 減小元素的值(遞減,每次遞減多少由第二個參數決定) * [Memcache::delete](https://www.php.net/manual/zh/memcache.delete.php)(key)— 從服務端刪除一個元素 * [Memcache::flush](https://www.php.net/manual/zh/memcache.flush.php)()— 清洗(刪除)已經存儲的所有的元素 * [Memcache::get](https://www.php.net/manual/zh/memcache.get.php)(key)— 從服務端檢回一個元素 * [Memcache::getExtendedStats](https://www.php.net/manual/zh/memcache.getextendedstats.php)(\[string`$type`\[,int`$slabid`\[,int`$limit`\= 100\]\]\])— 緩存服務器池中所有服務器統計信息 * [Memcache::getServerStatus](https://www.php.net/manual/zh/memcache.getserverstatus.php)('localhost',11211)— 用于獲取一個服務器的在線/離線狀態 * [Memcache::getStats](https://www.php.net/manual/zh/memcache.getstats.php)(\[string`$type`\[,int`$slabid`\[,int`$limit`\= 100\]\]\] )— 獲取服務器統計信息 * [Memcache::getVersion](https://www.php.net/manual/zh/memcache.getversion.php)()— 返回服務器版本信息 * [Memcache::increment](https://www.php.net/manual/zh/memcache.increment.php)(key, 1)— 增加一個元素的值(遞增) * [Memcache::pconnect](https://www.php.net/manual/zh/memcache.pconnect.php)('127.0.0.1',?11211, timeout)— 打開一個到服務器的持久化連接 * [Memcache::replace](https://www.php.net/manual/zh/memcache.replace.php)(key,value,MEMCACHE_COMPRESSED,有效期-秒)— 替換已經存在的元素的值 * [Memcache::set](https://www.php.net/manual/zh/memcache.set.php)(key,value,MEMCACHE_COMPRESSED,有效期-秒)— Store data at the server * [Memcache::setCompressThreshold](https://www.php.net/manual/zh/memcache.setcompressthreshold.php)(int`$threshold`\[,float`$min_savings=0.2`\] )— 開啟大值自動壓縮 * [Memcache::setServerParams](https://www.php.net/manual/zh/memcache.setserverparams.php)(string`$host`\[,int`$port`\= 11211\[,int`$timeout`\[,int`$retry_interval`\= false\[,bool`$status`\[,[callback](https://www.php.net/manual/zh/language.pseudo-types.php#language.types.callback)`$failure_callback`\]\]\]\]\] )— 運行時修改服務器參數和狀態 * [Memcache 函數](https://www.php.net/manual/zh/ref.memcache.php) * [memcache\_debug](https://www.php.net/manual/zh/function.memcache-debug.php)— 轉換調試輸出的開/關 ``` ?memcache::addServer('localhost',11211) ?memcache::set(key,value,MEMCACHE_COMPRESSED,有效期-秒) ?memcache::get(key) ?memcache::delete(key) ?memcache::flush(): //?增加一臺離線服務器 $memcache->addServer('localhost',?11211,?false,?1,?1,?-1,?false); //?使該服務器變為在線狀態 $memcache->setServerParams('memcache_host',?11211,?1,?15,?true,function($host,?$port)?{ ????print?"memcache?'$host:$port'?failed"; }); ``` **設置:** ``` // 1.實例化Memcache類 memcache $mem = new Memcache; // 2.配置memcache $mem->addServer('localhost',11211); // 3.向內存中添加數據(四種標量,數組,對象,是將這些數據類型轉化為字符串進行存儲) $mem->set('username','zhangsan'); $mem->set('age',20); $mem->set('price',20.99); $mem->set('bool',true); $mem->set('info',['username'=>'lisi','age'=>20,'sex'=>'男']); class Person { public $name = 'wangwu'; public $age = 20; public $sex = 1; } $mem->set('person',new Person()); // set(鍵,值,指定壓縮,設置有效期) $mem->set('weight','100KG',MEMCACHE_COMPRESSED,10); ``` **獲取:** ``` // 1.實例化memcache $mem = new Memcache; // 2.配置 $mem->addServer('localhost',11211); echo '<pre>'; var_dump($mem->get('username')); var_dump($mem->get('age')); var_dump($mem->get('info')); var_dump($mem->get('person')); class Person { public $name = 'wangwu'; public $age = 20; public $sex = 1; } // flush delete echo '</pre>'; ``` **綜合實例:** ``` // 1.先實例化memcache $mem = new Memcache; $mem->addServer('localhost',11211); //開啟壓縮數據超過2000,則壓縮20%(第二個參數我是壓縮率,取值0~1) $mem->setCompressThreshold(20000,?0.2); // 2.判斷內存中存在對應的數據信息 // 將sql語句單獨提取并加密取6位出來作為存入數據的鍵值 $sql = 'select * from demo_user'; $key = substr(md5($sql),0,6); echo $key; $data = $mem->get($key); if ($data) { echo 'memcache服務器中有對應的數據信息'; } else { /* 一個小時改變一次內容,將此內容緩存一個小時 在一個小時內,從計算機的緩存中讀取數據, 如果過期,從數據庫讀取,同時向緩存中再存入一份數據,在保存10s中 */ try { $pdo = new PDO('mysql:host=localhost;dbname=lamp129;charset=utf8','root',''); } catch (PDOException $p) { echo $p->getMessage(); } $stmt = $pdo->query($sql); $data = $stmt->fetchAll(PDO::FETCH_ASSOC); // 將查詢到的數據向memcache中寫入 $mem->set($key,$data,MEMCACHE_COMPRESSED,100); echo '這是從數據庫讀取到的信息'; } ``` **分布式緩存** ``` <?php // 分布式緩存 $mem = new Memcache; // 連接多臺memcache服務器 $mem->addServer('localhost',11211); $mem->addServer('192.168.129.67',11211); $mem->addServer('192.168.129.32',11211); //這里模擬100個數據 for ($i=0;$i<100;$i++) { $mem->set("user{$i}",'zhangsan'); } //memacache會自動測試每臺服務器的性能并分配到各臺機子上不需要在指定那臺服務器如下面直接巨可以獲取到 var_dump($mem->get('user10')); ``` **實戰:** 可以設置不同網站的跨域session 將session存入緩存中 phpinfo()查看session suppert enabled registered save handlers files user memacache redis session保存的方式 session_save_handler files 默認是files ![](https://img.kancloud.cn/e6/44/e6440ca98e61304ee507b00d9f9b193a_952x58.png) 打開php.ini 更改session.save_handler = memache 更改session.save_path="Xampp/tmp" 為: session.save_path="tcp://localhost:11211" **thinkphp3 中使用** ``` namespace Home\Controller; use Think\Controller; class IndexController extends Controller { public function index(){ if (S('user')) { echo '從緩存中讀取數據信息'; } else { // 1.查詢數據 $user = M('user'); $data = $user->select(); // 默認采用文件方式保存數據 S('user',$data,10); } var_dump(S('user')); $this->display(); } } // 設置緩存 S('name',$value); S('name',$value,300); S('name',$value,array('type'=>'file','expire'=>300)); // 讀取緩存 $value = S('name'); // 刪除緩存 S('name',null); 對象的方式操作緩存: // 初始化緩存 $cache = S(array('type'=>'xcache','prefix'=>'think','expire'=>600)); // 設置緩存 $cache->name = 'value'; // 獲取緩存 $value = $cache->name; // 刪除緩存 unset($cache->name); config.php配置如下: 'DATA_TYPE' => 'memcache', 'MEMCACHE_HOST' =>'127,0,0,1', 'MEMCACHE_PORT'=>'11211', ``` 網站的瓶頸 主要集中在數據庫 ,用緩存(直接操作內存) 存儲計算機的內存,如果一旦服務器斷電,數據都將清空 內存:memcached redis 基于文檔:mongodb memcache:基于內存的高性能的分布式的內存管理系統(C語言,PHP的一個擴展) 鍵值對的存儲 使用memcache的客戶端:PHP 1.安裝memcache的服務器端 cmd 1.1 進入到memcached.exe的目錄 1.2 memcached.exe -d install 安裝 1.3 memcached.exe -d start 啟動 memcached.exe -d stop:關閉 memcached.exe -d uninstall:卸載 netstat:顯示協議統計和當前 TCP/IP 網絡連接。 netstat -a 顯示所有連接和偵聽端口。 memcache默認的端口號為11211 2.客戶端連接memcache(telnet localhost 11211) stats:查看memcache運行狀態信息 set 鍵 標識符 有效期 長度(只能存儲字符串) set name 1 0(永久) 10(存儲的值必須是10個長度) zhangsan get 鍵 delete 鍵 flush\_all :清空所有數據 stats cachedump 1 0:打印所有的數據 3.PHP連接memcache 1.將php\_memcache.dll放在php目錄下的ext目錄下 2.在php.ini配置文件中, 確保安裝PHP與memcache的擴展 extension = php\_memcache.dll 3.重啟apache,確認memcache擴展成功安裝 memcache::addServer('localhost',11211) memcache::set(key,value,MEMCACHE\_COMPRESSED,有效期) memcache::get(key) memcache::delete(key) memcache::flush(): 高級session baidu.com tieba.baidu.com music.baidu.com sex.baidu.com // 必須確保能夠連接成功 session.save\_handler = memcache session.save\_path = 'tcp://192.168.129.30:11211' ~~~ <?php // 1.實例化Memcache類 memcache $mem = new Memcache; // 2.配置memcache $mem->addServer('localhost',11211); // 3.向內存中添加數據(四種標量,數組,對象,是將這些數據類型轉化為字符串進行存儲) $mem->set('username','zhangsan'); $mem->set('age',20); $mem->set('price',20.99); $mem->set('bool',true); $mem->set('info',['username'=>'lisi','age'=>20,'sex'=>'男']); class Person { public $name = 'wangwu'; public $age = 20; public $sex = 1; } $mem->set('person',new Person); // set(鍵,值,指定壓縮,設置有效期) $mem->set('weight','100KG',MEMCACHE_COMPRESSED,10); ~~~ ~~~ <?php // 1.先實例化memcache $mem = new Memcache; $mem->addServer('localhost',11211); // 2.判斷內存中存在對應的數據信息 // 將sql語句單獨提取并加密取6位出來作為存入數據的鍵值 $sql = 'select * from demo_user'; $key = substr(md5($sql),0,6); echo $key; $data = $mem->get($key); if ($data) { echo 'memcache服務器中有對應的數據信息'; } else { /* 一個小時改變一次內容,將此內容緩存一個小時 在一個小時內,從計算機的緩存中讀取數據, 如果過期,從數據庫讀取,同時向緩存中再存入一份數據,在保存10s中 */ try { $pdo = new PDO('mysql:host=localhost;dbname=lamp129;charset=utf8','root',''); } catch (PDOException $p) { echo $p->getMessage(); } $stmt = $pdo->query($sql); $data = $stmt->fetchAll(PDO::FETCH_ASSOC); // 將查詢到的數據向memcache中寫入 $mem->set($key,$data,MEMCACHE_COMPRESSED,100); echo '這是從數據庫讀取到的信息'; } ~~~ ~~~ <?php // 分布式緩存 $mem = new Memcache; // 連接多臺memcache服務器 $mem->addServer('localhost',11211); $mem->addServer('192.168.129.67',11211); $mem->addServer('192.168.129.32',11211); for ($i=0;$i<100;$i++) { $mem->set("user{$i}",'zhangsan'); } var_dump($mem->get('user10')); ~~~ 當網站越來越大存儲用戶或者訂單等session信息分布在不同的服務器上怎么辦?www.tieba.baidu.com? ?www.music.baidu.com? www.baidu.com session跨域共享問題:將上述的服務器都裝上memcache可以用將session數據存入memcache而不存入文件了 找到php.ini? ? session\_save\_handler=files? ?默認 改為session\_save\_handler=memcache session.save\_path='c:\\xampp\\tmp' 改為?session.save\_path='tcp://localhost:11211'
                  <ruby id="bdb3f"></ruby>

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

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看