Memcached
定義:
是一個高性能的分佈式內存對象緩存系統,它通過在內存中緩存數據和對象來減少讀取數據庫的次數。
功能:
通過緩存數據庫的查詢結果,減少數據庫的訪問次數,以提高動態WEB應用的速度,提高可擴展性守護進程是用C寫的,但是客戶端可以用任何語言來編寫,並通過
memcached
協議與守護進程通信。但是它並不提供冗餘(例如複製其Hashmap
條目),當某個服務器Server
停止運行或崩潰,所有存放在Server
鍵/值對都將丟失**
分爲兩個過程:memecached服務器端的安裝和memcache客戶端的安裝
- 所謂服務器端的安裝就是在服務器(
Linux,windows
)上安裝Memcache
實現數據的存儲 - 所謂客戶端的安裝就是指
PHP
(或者其他程序),去使用服務器端的Memcached
提供的函數,需要PHP
添加擴展
memcached的安裝
安裝步驟:
yum -y install memcached
啓動memcached :
/usr/bin/memcached -b -l 127.0.0.1 -p 11211 -m 150 -u root
注:-b 守護進程模式(退出終端窗口之後使程序還在運行),-l 指定IP地址127.0.0.1 ,-p 指定端口號11211,-m 爲memcached
分配多少內存(單位:M),-u 指定使用哪個用戶啓動memcached
查看memcached是否在運行:
[root@localhost /]# ps -ef | grep memcached
//或
[root@localhost /]# pstree -p | grep memcached
顯示如下:
root 627 507 0 15:31 pts/4 00:00:00 grep memcached
root 20177 1 0 Jul19 ? 00:00:37 /usr/bin/memcached -b -l 127.0.0.1 -p 11211 -m 150 -u root
如果能夠看到存在memcached進程,那就說明我們的 memcached 服務端已經安裝成功了。
php安裝memcache擴展
[root@localhost /]# cd /usr/local/src #我的所有源碼包習慣放在該目錄下
下載源碼包:
[root@localhost src]# wget http://pecl.php.net/get/memcache-2.2.4.tgz
解壓:
[root@localhost src]# tar -zxvf memcache-2.2.4.tgz
編譯與安裝:
[root@localhost src]# cd memcache-2.2.4/
[root@localhost memcache-2.2.4]# phpize && ./configure --with-php-config=/usr/local/php/bin/php-config --enable-memcache && make
[root@localhost memcache-2.2.4]# cp modules/memcache.so /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/
修改php配置:
找到php.ini位置
[root@localhost memcache-2.2.4]# whereis php.ini
在 php.ini 中添加以下內容:
extension=memcache.so
重啓php-fpm:
service php-fpm restart
檢查是否安裝成功:
一:在linux上敲入命令查看是否有memcache擴展模塊,如果有說明安裝成功:
[root@localhost memcache-2.2.4] php -m
二:通過phpinfo()查看是否安裝memcache擴展模塊
PHP操作memcache
<?php
$m = new Memcache();
$m->connect("127.0.0.1",11211);//連接
print_r($m);
$m->set('name','zhangsan',3600);
echo $m->get('name')."<br />";//讀取緩存值
echo $m->delete('name')."<br />";//刪除緩存值