memcached的基本安裝與使用

 

簡介:

Memcached是一款開源、高性能、分佈式內存對象緩存系統,可應用各種需要緩存的場景,其主要目的是通過降低對Database的訪問來加速web應用程序。它是一個基於內存的“鍵值對”存儲,用於存儲數據庫調用、API調用或頁面引用結果的直接數據,如字符串、對象等。

 

特性:

Memcached是一款開發工具,它既不是一個代碼加速器,也不是數據庫中間件。其設計哲學思想主要反映在如下方面:

1. 簡單key/value存儲:服務器不關心數據本身的意義及結構,只要是可序列化數據即可。存儲項由“鍵、過期時間、可選的標誌及數據”四個部分組成;

2. 功能的實現一半依賴於客戶端,一半基於服務器端:客戶負責發送存儲項至服務器端、從服務端獲取數據以及無法連接至服務器時採用相應的動作;服務端負責接收、存儲數據,並負責數據項的超時過期;

3. 各服務器間彼此無視:不在服務器間進行數據同步;

4. O(1)的執行效率,查找效率非常之高;

5. 清理超期數據:默認情況下,Memcached是一個LRU緩存,同時,它按事先預訂的時長清理超期數據;但事實上,memcached不會刪除任何已緩存數據,只是在其過期之後不再爲客戶所見;而且,memcached也不會真正按期限清理緩存,而僅是當get命令到達時檢查其時長;

 

常見操作命令:

Memcached提供了爲數不多的幾個命令來完成與服務器端的交互,這些命令基於memcached的協議實現。

存儲類命令:set, add, replace, append, prepend

獲取數據類命令:get, delete, incr/decr

統計類命令:stats, stats items, stats slabs, stats sizes

清理命令: flush_all

 

安裝memcachedrpm包安裝):

前提:已經搭建好lamp或者lnmp

# yum install -y php php-devel httpd mysql mysql-server

 

1、yum安裝memcached

# yum groupinstall "Development Tools" "Server Platform Deveopment" -y       安裝開發包組

# yum install -y memcached

 

2、啓動memcached服務

# service memcached start

 

3、telnet簡單測試

[root@a ~]# telnet 127.0.0.1 11211

Trying 127.0.0.1...

Connected to 127.0.0.1.

Escape character is '^]'.

add testkey 0 20 1               緩存一個鍵testkey,序列0 緩存時間20S 1字節

x                                             值爲x

STORED

get testkey                       請求testkey

VALUE testkey 0 1

x                                                       值爲x

END

get testkey             20秒後再次請求,就沒有值了

END

 

4、爲php安裝memcache插件

 

1.安裝memcache插件

#tar xf memcache-2.2.7.tgz

#cd memcache-2.2.7

#phpize

#./configure --with-php-config=/usr/bin/php-config

#  make && make install(安裝完成會出現下方提示)

  Installing shared extensions: /usr/lib64/php/modules/

 

2.配置php支持memcache

# vim /etc/php.ini

extension = "/usr/lib64/php/modules/memcache.so"   添加此行

# service httpd restart

 

4、創建PHP頁面測試

# vim /var/www/html/index.php

 

<?php

    $mem = new Memcache;

    $mem->connect("127.0.0.1", 11211)  or die("Could not connect");

 

    $version = $mem->getVersion();

    echo "Server's version: ".$version."<br/>\n";

 

    $mem->set('hellokey', 'Hello World', 0, 600) or die("Failed to save data at the memcached server");

    echo "Store data in the cache (data will expire in 600 seconds)<br/>\n";

 

    $get_result = $mem->get('hellokey');

    echo "$get_result is from memcached server.";        

?>

5、訪問測試

wKioL1dqHZrTckC5AABaiiMZOwg479.png

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章