?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é)議與守護進程通信。
在峨山縣等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都做網(wǎng)站、網(wǎng)站建設(shè) 網(wǎng)站設(shè)計制作按需開發(fā),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計,全網(wǎng)營銷推廣,成都外貿(mào)網(wǎng)站制作,峨山縣網(wǎng)站建設(shè)費用合理。
1、協(xié)議簡單;
2、基于libevent的事件處理;
3、內(nèi)置內(nèi)存存儲方式;
4、memcached不互相通信的分布式。
為了提高性能,memcached中保存的數(shù)據(jù)都存儲在memcached內(nèi)置的內(nèi)存存儲空間中。由于數(shù)據(jù)僅存在于內(nèi)存中,因此重啟memcached、重啟操作系統(tǒng)會導(dǎo)致全部數(shù)據(jù)消失。另外,內(nèi)容容量達(dá)到指定值之后,就基于LRU(Least Recently Used)算法自動刪除不使用的緩存。memcached本身是為緩存而設(shè)計的服務(wù)器,因此并沒有過多考慮數(shù)據(jù)的永久性問題。
Memcached處理的原子是每一個(key,value)對(以下簡稱kv對),key會通過一個hash算法轉(zhuǎn)化成hash-key,便于查找、對比以及做到盡可能的散列。同時,memcached用的是一個二級散列,通過一張大hash表來維護。
Memcached有兩個核心組件組成:服務(wù)器端(server)和客戶端(client),在一個memcached的查詢中,client先通過計算key的hash值來確定kv對所處在的server位置。當(dāng)server確定后,客戶端就會發(fā)送一個查詢請求給對應(yīng)的server,讓它來查找確切的數(shù)據(jù)。因為這之間沒有交互以及多播協(xié)議,所以memcached交互帶給網(wǎng)絡(luò)的影響是最小化的。
memcached服務(wù)器 192.168.13.128 (memcached-1.5.6.tar.gz、libevent-2.1.8-stable.tar.gz)
memcache客戶端 192.168.13.129 (memcache-2.2.7.tgz 、LAMP)
[root@server ~]# yum install -y gcc gcc-c++ make ##安裝環(huán)境組件
[root@server ~]# mount.cifs //192.168.100.3/LNMP-C7 /mnt/
Password for root@//192.168.100.3/LNMP-C7:
[root@server ~]# cd /mnt/memcached/
[root@server memcached]# tar zxvf libevent-2.1.8-stable.tar.gz -C /opt/ ##事件通知庫
[root@server memcached]# tar zxvf memcached-1.5.6.tar.gz -C /opt/ ##解壓事件庫服務(wù)端
[root@server memcached]# cd /opt/libevent-2.1.8-stable/
[root@server libevent-2.1.8-stable]# ./configure \ ##配置
> --prefix=/usr/local/libevent ##安裝路徑
[root@server libevent-2.1.8-stable]# make && make install ##編譯安裝
[root@server libevent-2.1.8-stable]# cd /opt/memcached-1.5.6/
[root@server memcached-1.5.6]# ./configure \
> --prefix=/usr/local/memcached \
> --with-libevent=/usr/local/libevent ##關(guān)聯(lián)libevent事件通知庫
[root@server memcached-1.5.6]# make && make install
[root@server memcached-1.5.6]# ln -s /usr/local/memcached/bin/* /usr/local/bin/ ##建立軟連接
[root@server memcached-1.5.6]# memcached -d -m 32m -p11211 -uroot ##開啟服務(wù)
##-d守護進程 ;-m緩存大小32M ;-p端口11211
[root@server memcached-1.5.6]# netstat -ntap | grep memcached ##查看端口
[root@server memcached-1.5.6]# systemctl stop firewalld.service
[root@server memcached-1.5.6]# setenforce 0
[root@server memcached-1.5.6]# yum install telnet -y ##安裝telnet軟件
[root@server memcached-1.5.6]# telnet 127.0.0.1 11211 ##本地測試登錄
add username 0 0 7 ##0:不設(shè)置序列號0:不設(shè)置過期事件7:字節(jié)長度
1234567
STORED
add users 0 0 7
123
ERROR
get username ##查看
VALUE username 0 7
1234567
END
gets username ##查看
VALUE username 0 7 1 ##1:更新次數(shù)
1234567
END
##lamp結(jié)構(gòu)見前博客有具體操作
##測試數(shù)據(jù)工作是否正常
[root@client php-5.6.11]# MySQL -u root -pabc123 //進入數(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ù)庫
##修改PHP首頁
[root@client php-5.6.11]# vim /usr/local/httpd/htdocs/index.php
<?php
$link=mysql_connect('192.168.13.129','skyuser','admin123');
if($link) echo "<h2>Success!!</h2>";
else echo "Fail!!";
mysql_close();
?>
[root@client ~]# yum install autoconf -y
[root@client ~]# cd /mnt/memcached/
[root@client memcached]# tar zvxf memcache-2.2.7.tgz -C /opt/
[root@client memcached]# cd /opt/memcache-2.2.7/
[root@client memcache-2.2.7]# /usr/local/php5/bin/phpize ##增加PHP模塊生成腳本
[root@client memcache-2.2.7]# ./configure \
> --enable-memcache \ ##開啟memcache
> --with-php-config=/usr/local/php5/bin/php-config ##關(guān)聯(lián)PHP配置文件
[root@client memcache-2.2.7]# make && make install
/usr/local/php5/lib/php/extensions/no-debug-zts-20131226/ ##共享文件位置,后面需要用到
[root@client memcache-2.2.7]# vim /usr/local/php5/php.ini ##修改php配置文件
extension_dir = "/usr/local/php5/lib/php/extensions/no-debug-zts-20131226/" ##共享文件位置
extension = memcache.so ##指向memcache模塊
[root@client memcache-2.2.7]# vim /usr/local/httpd/htdocs/index.php
<?php
$memcache=new Memcache();
$memcache->connect('192.168.13.128',11211); ##連接Memcached服務(wù)器地址
$memcache->set('key','Memcache test Successfull!',0,60);
$result=$memcache->get('key');
unset($memcache);
echo$result;
?>
[root@client memcache-2.2.7]# service httpd stop ##重啟
[root@client memcache-2.2.7]# service httpd start
##瀏覽器訪問
add username 0 0 7
//添加數(shù)據(jù)(兩個0表示:不進行壓縮和序列化標(biāo)識,數(shù)據(jù)過期時間為永不過期;標(biāo)識號是7就需要輸入7位數(shù)。)
allways //輸入一個7位數(shù)
get username //查詢數(shù)據(jù)
gets username
set username 0 0 10 //更新信息,若鍵名不存在,則自行添加
everything
replace username 0 0 8 //更新信息,若鍵名不存在,則報錯
12345678
gets username //檢測更新
VALUE username 0 8 4
12345678
append username 0 0 7 //鍵值后追加數(shù)據(jù)
example
prepend username 0 0 2 //鍵值前追加數(shù)據(jù)
un
delete username //清除指定的鍵值數(shù)據(jù)
flush_all //清除所有緩存數(shù)據(jù)
OK
stats //顯示狀態(tài)信息
stats items //返回所有鍵值對的統(tǒng)計信息
stats cachedump 1 0 //返回指定存儲空間的鍵值對
stats slabs //顯示各個slab的信息
stats sizes //輸出所有item的大小和個數(shù)
stats reset //清空統(tǒng)計數(shù)據(jù)
分享標(biāo)題:memcached內(nèi)存數(shù)據(jù)庫——部署及操作
轉(zhuǎn)載來于:http://jinyejixie.com/article2/peooic.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)、域名注冊、、軟件開發(fā)、商城網(wǎng)站、品牌網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)