<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國際加速解決方案。 廣告
                ##MemCache管理與應用 > MemCache系統是通過客戶端發送的命令(set/get)管理“內存中緩存”的數據。客戶端在于MemCached服務器建立連接以后,接下來的事情就是存取對象了,每個被存取的對象都有一個唯一的標識符key,存取操作均通過這個key進行,保存到memcached中的對象實際上是放置在內存中的,而并不是保存在緩存文件中的,這也是為什么MemCached能夠如此告訴快速的原因。 ![memcached工作原理](https://img.kancloud.cn/b9/27/b927c38120224dcdf1610520d24bce5c_350x300.jpg) ###MemCache在WEB中的應用: 1、使用MemCache作為中間緩沖層減少數據庫的壓力 2、MemCache分布式的應用 ###MemCache的安裝及管理 1、Linux下安裝MemCache軟件 省略... 2、Window下安裝MemCache軟件 下載MemCache二進制數據包; 解壓后放在某個磁盤的分區下面:如D:\ 執行安裝命令: D:\>memcached.exe -d install ![安裝memcached](https://img.kancloud.cn/db/67/db673049e59214917795a411d6213bf1_667x292.png) 通過計算機管理的“服務”中查看剛安裝的memcached軟件。 ![計算機管理的服務](https://img.kancloud.cn/d2/a6/d2a664f104678ffad8ac40cff11c1cd8_737x309.png) 啟動memcached服務器: D:\>memcached.exe -d start ![啟動memcached服務器](https://img.kancloud.cn/b3/60/b360af93236523526a1f9908226a4a90_563x277.png) 停止memcached服務器的運行: D:\>memcached.exe -d stop 3、memcached服務器的管理 一些常用的管理選項: 例如:memcached.exe -d -m 2048 -l localhost -p 11211 -d 以守護程序方式運行memcached -m 2048 2GB內存 -l localhost 監聽本機 端口 11211 ![memcached服務器的管理](https://img.kancloud.cn/f2/7b/f27b4f99a7781b70abc6e9fffa802946_533x182.png) ###使用Telnet作為memcached的客戶端管理 1、連接memcached服務器 telnet localhost 11211 ![連接memcached服務器](https://img.kancloud.cn/c5/49/c54959a8226c4fe9462e53ae4cbf21fd_539x220.png) 2、基本的memcached客戶端命令 stats:當前所有memcached服務器運行的狀態信息 add:添加一個數據到服務器 set:替換一個已經存在的數據。如果數據不存在,則和add命令相同。 get:從服務器端提取指定的數據。 delete:刪除指定的單個數據。清除所有的數據,可以使用flush_all指令。 3、數據管理指令 添加(add)、修改(set) <命令><鍵><標記><有效期><數據長度> 鍵:key 標記:一個16位的無符號整型數據,用來設置服務器端和客戶端的一些交互操作 有效期:0表示無限制,單位是秒 ![數據管理指令](https://img.kancloud.cn/52/0f/520fc125bf0ba4a7e91095cc4b3c6a75_635x383.png) 刪除(delete)和獲取(get) <命令><鍵> ![刪除數據管理指令](https://img.kancloud.cn/81/1d/811df870378bee86ff93016a349c2696_581x268.png) ###PHP的memcached管理接口 1、安裝PHP中的MemCache應用程序擴展接口 安裝文件后,在配置文件中加入“extension=php_memcache.dll” 2、PHP程序使用MemCache應用程序接口的方法實例 <?php //實例化得到memcache對象 $mem = new Memcache(); //連接memcached服務器 $mem->connect('127.0.0.1',11211); //賦值 $mem->set('name','jack',2,1000); //取值 echo $mem->get('name'); 結果輸出:jack <?php //得到memcache對象 $mem = new Memcache(); //連接 $mem->connect('127.0.0.1', 11211); $list = array('name'=>'jack', 'age'=>18); //賦值 存進去是什么樣子,讀取出來就是什么樣 $mem->set('list', $list); //取值 $res = $mem->get('list'); echo '<pre>'; print_r($res); echo '</pre>'; 輸出結果如下: ![從memcached服務器中獲取數據](https://img.kancloud.cn/1d/ab/1dab76abd28ae43022e89dde49f92c1c_419x258.png) ####分布式memcached服務器 //添加多臺服務器 $mem->addServer('192.168.12.6',11211); $mem->addServer('192.168.12.251',11211); $mem->addServer('192.168.12.25',11211); ###MemCache的實例應用 1、從數據庫讀取用戶表的PHP代碼 <?php $mem = new Memcache(); $mem->connect('127.0.0.1', 11211); $sql = "select id, username, password, addtime from shop_user"; $fileName = md5($sql); echo $fileName; $userlist = $mem->get($fileName); if (empty($userlist)){ $link = mysqli_connect('127.0.0.1','root', '', 'ishop'); mysqli_set_charset($link,'utf8'); sleep(3); $res = mysqli_query($link, $sql); if ($res) { while ($row = mysqli_fetch_assoc($res)) { $userlist[] = $row; } } // bool Memcache::set ( string $key , mixed $var [, int $flag [, int $expire ]] ) // 向memcached中設置值,設置失效時間是10s $mem->set($fileName, $userlist, 2, 10); } /* key 要設置值的key。 var 要存儲的值,字符串和數值直接存儲,其他類型序列化后存儲。 flag 使用 MEMCACHE_COMPRESSED 指定對值進行壓縮(使用zlib)。 expire 當前寫入緩存的數據的失效時間。 */ ?> 2、HTML的數據展示代碼 <table width="600" border="1" align="center"> <caption><h2>用戶列表</h2></caption> <tr> <th>ID</th> <th>UserName</th> <th>Password</th> <th>AddTime</th> </tr> <?php foreach($userlist as $v): ?> <tr> <td><?php echo $v['id']; ?></td> <td><?php echo $v['username']; ?></td> <td><?php echo $v['password']; ?></td> <td><?php echo $v['addtime']; ?></td> </tr> <?php endforeach; ?> </table> 代碼解釋: 1、第一次訪問時,$userlist數據為空,因此會讀取數據庫操作,查詢的結果會同時存儲到memcached中,$mem->set($fileName, $userlist, 2, 10); 并且設置了失效的時間為10s。 2、$userlist只要沒有失效,那么訪問該頁面,就會通過$userlist = $mem->get($fileName);來獲取存儲在memcached中的查詢結果,而不直接訪問數據庫。這樣讀取的速度就會很快。 3、當緩存失效后,再讀取數據庫中的最新數據。 ![memcached實際案例](https://img.kancloud.cn/32/fc/32fc71db782cff6d3048435caf271b51_649x524.png)
                  <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>

                              哎呀哎呀视频在线观看