php學習筆記(二十四)php使用memcache擴充庫的使用和安裝

來源:互聯網
上載者:User
<?php /** * Memcached(記憶體緩衝) * 高效能分布式記憶體對象緩衝系統(通過記憶體維護一個巨大的hash表(key=>value)) * 記憶體維護軟體(減少IO 150k 開源) * http://localhost:11211 *  * memcached基於libevent事件庫 * linux: * 1.安裝libevent * 2.安裝memcached並指定libevent的位置 * 3.使用: * 啟動:memcached -d -m 128 -l 192.168.0.1 -p 11211 -u root * 停止:kill cat /tmp/memcached.pid * killall memcached * windows: * 使用編譯完成的軟體 * 1.安裝到系統服務中: * 在doc中:執行此軟體 memcached.exe -d install(如果提示錯誤,要找到cmd.exe用管理員身份開啟)  *2.卸載: * 在doc中:執行此軟體 memcached.exe -d uninstall  * 3.啟動服務:(預設ip是本機,連接埠是11211) * memcached.exe -d start  * memcached.exe -d -m 128 -l 127.0.0.1 -p 11211 start 指定參數 * 配置參數: * -p 監聽連接埠 * -l 連結的ip地址,預設是本機 * -d start 啟動memcached服務 *  -d restart 重啟memcached服務 *  -d stop|shutdown 關閉正在啟動並執行memcached服務 *  -d install 安裝memcached服務 *  -d uninstall 卸載memcached服務 *  -u 以什麼身份運行(僅在以root啟動並執行時候有效) *  -m 最大使用記憶體,單位是MB,預設是64MB,最大應該是2G *  -M 記憶體耗盡時返回錯誤,而不是刪除項 *  -c 最大同時串連數,預設是1024 *  -f 塊大小增長因子,預設是1.25 *  -n 最小分配空間,key+value+float 預設是48 *  -h 顯示協助 *  * 操作memcached(命令方式telnet作為用戶端) * telnet localhost 11211 ---memcached *  * php配置memcached檔案:在ext中加入:php_memcache.dll(對於的版本要正確) * 並修改php.ini擴充 * extension=php_memcache.dll * [Memcache] * memcache.allow_failover = 1 * memcache.max_failover_attempts=20 * memcache.chunk_size =8192 * memcache.default_port = 11211  *  * Memcache物件導向的常用介面包括: * Memcache::connect 開啟一個到memcache的連結 * Memcache::pconnect開啟一個到memcache的長串連 * Memcache::close關閉一個Memcache的連結 * Memcache::set儲存資料到memcache的伺服器 * Memcache::add添加資料到memcache的伺服器 * Memcache::get提取一個已儲存在memcache的伺服器資料 * Memcache::replace替換一個已經存在memcache伺服器上的項目(功能類似memcache::set) * Memcache::delete從Memcache伺服器上刪除一個儲存的項目 * Memcache::flush重新整理所以Memcache伺服器上儲存的項目(類似於刪除所有) * Memcache::getStats擷取當前memcache伺服器啟動並執行狀態 * Memcache::addServer分布式伺服器添加一個伺服器 *  *  * 何時何處使用memcache * 一、資料庫讀出來的資料(select)使用memcache處理 * 二、在會話控制session中使用 *  * memcache的安全建議: * 1.內網訪問: * memcached -d -u root -l 192.168.0.111 -p 11211  * 2.設定防火牆: * iptables -A INPUT -p tcp -s 192.168.1.111 -dport 11211 -j ACCEPT * iptables -A INPUT -p udp -s 192.168.1.111 -dport 11211 -j ACCEPT *  *///調用memcache的測試的方法//memcacheTest();//調用儲存查詢語句的方法memcacheSQL();/** * 查詢資料庫 * 緩衝查詢的資料放入memcache中 * 注意: * 1.同一個項目的安裝兩次,key要有不同的首碼 * 2.sql語句可以作為緩衝的下標(防止sql暴漏?) */function memcacheSQL(){//連結資料庫儲存select查詢語句//建立Memcache服務物件$mem = new Memcache;$mem->connect("localhost",11211);$sql = "select * from users where id <12";$key = md5($sql);$data = $mem->get($key);if (!$data) {$mysql = new mysqli("localhost","root","root","hibernate");$result = $mysql->query($sql);$data = array();while ($row = $result->fetch_assoc()){$data[]=$row;}$result->free();$mysql->close();$mem->set($key,$data,MEMCACHE_COMPRESSED,60);echo $sql;}echo "<pre>";print_r($data);echo "</pre>";$mem->close();}/** * memcache伺服器 * 資料測試 */function memcacheTest(){//建立Memcache服務物件$mem = new Memcache;$mem->connect("localhost",11211);//添加多伺服器//$mem->addServer("www.sid.com",11221);//$mem->addServer("192.167.1.112",11211);//添加$mem->add("mystr","this is a memcache test!",MEMCACHE_COMPRESSED,60);//修改$mem->set("mystr","this is a update memcache test!",MEMCACHE_COMPRESSED,60);//擷取$str = $mem->get("mystr");echo $str."<br>";//添加數組$mem->add("myarr",array("asdfsa","sdfsdf"),MEMCACHE_COMPRESSED,60);//擷取$str = $mem->get("myarr");echo $str."<br>";//添加對象class Per{var $name = "san";var $age=12;}$mem->add("myper",new Per,MEMCACHE_COMPRESSED,60);//擷取$str = $mem->get("myper");echo $str->name."<br>";//擷取伺服器的相關資訊echo $mem->getVersion()."<br>";echo "<pre>";echo var_dump($mem->getStats());echo "</pre>";$mem->flush();$mem->close();}?>

附php的memcached擴充庫下載(php5.2和php5.3)

點擊開啟連結

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.