memcache學習筆記

來源:互聯網
上載者:User



memcache


一,Memcache概述===================


高效能分布式的記憶體對象緩衝系統,通過在記憶體裡維護一個巨大的hash表。


key = value)


是一個軟體服務軟體)c/s軟體


維護記憶體的,是將資料在記憶體中使用,減少了I/O 150K


開源的,


連接埠:11211



二,原理======================


Memcache 軟體 memcached


memcached是以精靈方式運行於一個或多個伺服器中,隨時接收用戶端的串連和操作。


用戶端可以使用各種語言去編寫,php,java,c,c++,perl,python,ruby等


基於libevent事件,即libevent庫





三,為什麼在web中使用Memcache============


不用查資料庫,可以分布式儲存




四,安裝===================


linux下安裝


先安裝 libevent

再安裝 memcache

./configure --with-libevent=/usr/local/libevent


啟動 Memcache -d -m 128 -l 192.168.1.111 -p 11211 -u root


停止:kill memcached

或 kill cat /tmp/memcached.pid





windows 安裝



放到目錄下,然後

命令

memcache.exe -d install


服務 -》裡面就有memcache


memcache.exe -d uninstall 缷載

memcache.exe -d -m 50 -l 127.0.0.1 -p 11211 start 自啟動





五,操作===============


telnet 192.168.1.111 80 ........apache

telnet 192.168.1.111 22 ........ssh

telnet 192.168.1.111 11211 ........memcache


stats 查看狀態


添加變數

add mykey1 1 3000 10

添加 變數 標誌位 有效期間 字串長度

helloworld


擷取變數

get myval1


使用get可以覆蓋以前的變數

set myval1 1 3000 10

1234567890

get myval1


刪除

delete myval1


清除所有的

flush_all



quit 退出


再進還能獲得,重啟服務後就沒有了


version 版本


stats 狀態


stats sizes 使用量


stats items


stats cachedump 1 1 查看一條標誌位為1的資料


stats chchedump 1 0 查看所有標誌位為1的資料






六,memcache在php 中使用=======================


下載memcache.dll擴充到php擴充目錄中,然後在php設定檔中添加,重啟,就有了對memcache的支援


php有一系列操作memcache的函數


有面向過程,還有物件導向


具體可以參考PHP手冊 “LXXXIV. Memcache Functions” 這章。  Memcache物件導向的常用介面包括:

Memcache::connect -- 開啟一個到Memcache的串連  Memcache::pconnect -- 開啟一個到Memcache的長串連  Memcache::close -- 關閉一個Memcache的串連  Memcache::set -- 儲存資料到Memcache伺服器上  Memcache::get -- 提取一個儲存在Memcache伺服器上的資料  Memcache::replace -- 替換一個已經存在Memcache伺服器上的項目功能類似Memcache::set)

Memcache::delete -- 從Memcache伺服器上刪除一個儲存的項目Memcache::flush -- 重新整理所有Memcache伺服器上儲存的項目類似於刪除所有的儲存的項目)  

Memcache::getStats -- 擷取當前Memcache伺服器啟動並執行狀態 Memcache::addServer -- 分布式伺服器添加一個伺服器





demo:


<?php


$mem = new Memcache;

$mem->connect("loclahost",11211);

//$mem->addServer("www.lamp.com",11221);

//$mem->addServer("192.168.1.111",11211);

//添加字串

$mem->add("mystr","this is a memcachetest",MEMCACHE_COMPRESSED,3600);


$mem->set("mystr","wwwwwwwwwwwww",MEMCACHE_COMPRESSED,3600);


$str = $mem->get("mystr");

echo "string:".$str;



$mem->delete("mystr"); //刪除一個變數

$mem->flush(); //刪除所有的


//添加數組

$mem->add("myarr",array("aaa","bbb","ccc"));

print_r($mem->get("myarr"));



//添加對象

class Person{


var $name="zhangshan";

var $age=10;


}


$mem=add("myobj",new Person);

var_dump($mem->get("myobj"));



//讀出狀態

echo $mem->getVersion();

print_r($mem->getStats());




$mem->close();


?>





七,php在什麼地方使用memcache


1,資料庫讀出來的資料select)

2, 在會話控制session中使用




同一個項目安裝兩次,key要有首碼

<?php


$mem = new Memcache;

$mem->connect("loclahost",11211);


$data = $mem->get("shops");



if(!$data){

$sql = "select * from shops";

$mysqli = new mysqli("localhost","root","","shopsdb");

$result = $mysqli->query($sql);

$data = array();

while($row=$result->Fetch_assoc()){

$data[]=$row;

}

$result->free();

$mysqli->close();


$mem->set("shops",$data,MEMCACHE_COMPERSSED,3360);


}



$mem->close();


?>






八,安全=================


1, 用內網的伺服器做memcache伺服器

2, 設定防火牆

命令:iptables


































本文出自 “為明天做好準備” 部落格,請務必保留此出處http://zaikuip.blog.51cto.com/4128335/1300125

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.