溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Memcached 安裝及管理數(shù)據(jù)庫操作

發(fā)布時間:2020-06-14 09:36:13 來源:網(wǎng)絡(luò) 閱讀:182 作者:wx5d3faba330584 欄目:云計算

一、Memcached 簡介:

(1)介紹:
Memcached 是一個高性能的分布式內(nèi)存對象緩存系統(tǒng),用于動態(tài)Web應(yīng)用以減輕數(shù)據(jù)庫負(fù)載。它通過在內(nèi)存中緩存數(shù)據(jù)和對象來減少讀取數(shù)據(jù)庫的次數(shù),從而提高動態(tài)、數(shù)據(jù)庫驅(qū)動網(wǎng)站的速度。Memcached基于一個存儲鍵/值對的hashmap。其守護進程(daemon )是用C寫的,但是客戶端可以用任何語言來編寫,并通過memcached協(xié)議與守護進程通信。
(2)特點:
memcached作為高速運行的分布式緩存服務(wù)器,具有以下的特點:
1、協(xié)議簡單;
2、基于libevent的事件處理;
3、內(nèi)置內(nèi)存存儲方式;
4、memcached不互相通信的分布式。
(3)存儲方式:
為了提高性能,memcached中保存的數(shù)據(jù)都存儲在memcached內(nèi)置的內(nèi)存存儲空間中。由于數(shù)據(jù)僅存在于內(nèi)存中,因此重啟memcached、重啟操作系統(tǒng)會導(dǎo)致全部數(shù)據(jù)消失。另外,內(nèi)容容量達到指定值之后,就基于LRU(Least Recently Used)算法自動刪除不使用的緩存。memcached本身是為緩存而設(shè)計的服務(wù)器,因此并沒有過多考慮數(shù)據(jù)的永久性問題。

二、案例部署:

準(zhǔn)備兩臺 centos7 系統(tǒng)的虛擬機,一臺為 Memcached 服務(wù)器,另一臺為裝有 LAMP架構(gòu)的 Memcache 客戶端。
Memcached 安裝及管理數(shù)據(jù)庫操作
第一步:部署 Memcached 服務(wù)器

(1)安裝依賴環(huán)境包:
yum install gcc gcc-c++ make -y

(2)解壓軟件包:
tar zxvf libevent-2.1.8-stable.tar.gz -C /opt/
tar zxvf memcached-1.5.6.tar.gz -C /opt/

(3)編譯安裝 libevent :
cd /opt/libevent-2.1.8-stable
./configure --prefix=/usr/local/libevent
make && make install

(4)編譯安裝 memcached :
cd /opt/memcached-1.5.6/

./configure \
--prefix=/usr/local/memcached \
--with-libevent=/usr/local/libevent/

make && make install

(5)方便操作可以創(chuàng)建一個軟鏈接:
ln -s /usr/local/memcached/bin/* /usr/local/bin

(6)開啟 memcached 服務(wù):
memcached -d -m 32m -p 11211 -u root    //-d守護進程 ;-m緩存大小32M ;-p端口11211

(7)查看端口是否正常開發(fā):
netstat -natp | grep memcached

第二步:客戶端部署 LAMP 架構(gòu)
(1)LAMP 架構(gòu)之前博客有詳細講過 :部署LAMP架構(gòu)
(2)下面是測試 LAMP 架構(gòu)是否能正常運行:
1、測試數(shù)據(jù)庫工作是否正常:

mysql -u root -p   //進入數(shù)據(jù)庫

CREATE DATABASE sky;   //創(chuàng)建一個數(shù)據(jù)庫為 sky
GRANT all ON sky.* TO 'skyuser'@'%' IDENTIFIED BY 'admin123';  //提權(quán)
flush privileges;   //刷新數(shù)據(jù)庫

2、修改 PHP 首頁:

vim /usr/local/httpd/htdocs/index.php

    <?php
    $link=mysql_connect('192.168.220.131','skyuser','admin123');
    if($link) echo "<h2>Success!!</h2>";
    else echo "Fail!!";
    mysql_close();
    ?>

3、瀏覽器訪問測試 :http://192.168.220.131/index.php ,顯示 Success為正常。
Memcached 安裝及管理數(shù)據(jù)庫操作

第三步:安裝 Memcache 客戶端

(1)安裝依賴包:
 yum install autoconf -y

(2)解壓:
 tar zvxf memcache-2.2.7.tgz -C /opt/

(3)編譯(使用PHP的phpize腳本生成配置腳本configure,再進行配置編譯):
cd /opt/memcache-2.2.7
/usr/local/php5/bin/phpize   
./configure \
--enable-memcache \
--with-php-config=/usr/local/php5/bin/php-config

(4)安裝:
make && make install

(5)安裝完成后,會出現(xiàn)一行,這是共享文件的位置,后面要用到:
/usr/local/php5/lib/php/extensions/no-debug-zts-20131226/

Memcached 安裝及管理數(shù)據(jù)庫操作
第四步:配置 PHP ----- 添加 Memcached 組件

vim /usr/local/php5/php.ini 
//搜索并修改下面一行,再新增一行
        extension_dir = "/usr/local/php5/lib/php/extensions/no-debug-zts-20131226/" 
        extension = memcache.so

Memcached 安裝及管理數(shù)據(jù)庫操作
第五步:客戶端檢測服務(wù)端是否可以正常連接
(1)編寫測試首頁,用于檢查 memcached 工作是否正常

vim /usr/local/httpd/htdocs/index.php

<?php
$memcache=new Memcache();
$memcache->connect('192.168.220.169',11211);  ##連接Memcached服務(wù)器地址
$memcache->set('key','Memcache test Successfull!',0,60);
$result=$memcache->get('key');
unset($memcache);
echo$result;
?> 

(2)service httpd restart 重啟Apache服務(wù)
(3)瀏覽器網(wǎng)頁訪問:http://192.168.220.131/index.php
Memcached 安裝及管理數(shù)據(jù)庫操作

三、Memcached 數(shù)據(jù)庫操作與管理:

(1)安裝使用 telnet 連接主機IP地址以及11211端口,就可以對數(shù)據(jù)庫進行操作和管理了

yum install telnet -y
telnet 127.0.0.1 11211   //連接本地用 127.0.0.1就可以了,連接其他主機使用對應(yīng)IP地址即可

(2)新建數(shù)據(jù):

add username 0 0 7  //添加數(shù)據(jù)(兩個0表示:不進行壓縮和序列化標(biāo)識,數(shù)據(jù)過期時間為永不過期;標(biāo)識號是7就需要輸入7位數(shù)。)
allways   //輸入一個7位數(shù)

Memcached 安裝及管理數(shù)據(jù)庫操作
(2)查詢數(shù)據(jù):

get username  //查詢數(shù)據(jù)

gets username

(3)更新數(shù)據(jù):

set username 0 0 10       //更新信息,若鍵名不存在,則自行添加
everything

replace username 0 0 8    //更新信息,若鍵名不存在,則報錯
12345678

Memcached 安裝及管理數(shù)據(jù)庫操作
(4)檢測/查看 更新數(shù)據(jù):

gets username  //檢測更新
VALUE username 0 8 4
12345678

(5)追加數(shù)據(jù):

append username 0 0 7       //鍵值后追加數(shù)據(jù)
example

prepend username 0 0 2     //鍵值前追加數(shù)據(jù)
un

(6)清除數(shù)據(jù):

delete username     //清除指定的鍵值數(shù)據(jù)
flush_all           //清除所有緩存數(shù)據(jù)
OK

(7)查看服務(wù)器統(tǒng)計信息:

stats                  //顯示狀態(tài)信息
stats items            //返回所有鍵值對的統(tǒng)計信息
stats cachedump 1 0    //返回指定存儲空間的鍵值對 
stats slabs            //顯示各個slab的信息
stats sizes           //輸出所有item的大小和個數(shù)
stats reset           //清空統(tǒng)計數(shù)據(jù)

(8)退出:

quit
向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI