亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > PHP > 正文

PHP擴展Memcache分布式部署方案

2024-05-04 23:40:45
字體:
來源:轉載
供稿:網友
memcached雖然稱為“分布式”緩存服務器,但服務器端并沒有“分布式”功能。服務器端僅包括內存存儲功能,其實現非常簡單。至于memcached的分布式,則是完全由客戶端程序庫實現的。這種分布式是memcached的最大特點。
 

基礎環境

其實基于PHP擴展的Memcache客戶端實際上早已經實現,而且非常穩定。先解釋一些名詞,Memcache是danga.com的一個開源項目,可以類比于MySQL這樣的服務,而PHP擴展的Memcache實際上是連接Memcache的方式。

首先,進行Memcache被安裝具體可查看博客里的其它幾篇文章;
其次,進行PHP擴展的安裝,官方地址是http://pecl.php.net/package/memcache
最后,啟動Memcache服務,比如這樣,通過不同端口啟動多個進程模擬分布式:

 

復制代碼代碼如下:
/usr/local/bin/memcached -d -p 11211 -u root -m 10 -c 1024 -t 8 -P /tmp/memcached.pid
/usr/local/bin/memcached -d -p 11213 -u root -m 10 -c 1024 -t 8 -P /tmp/memcached.pid
/usr/local/bin/memcached -d -p 11214 -u root -m 10 -c 1024 -t 8 -P /tmp/memcached.pid

啟動三個只使用10M內存以方便測試。

 

參數說明:

-d選項是啟動一個守護進程,
-m 是分配給Memcache使用的內存數量,單位是MB,我這里是512MB,
-u是運行Memcache的用戶,我這里是root,
-l 是監聽的服務器IP地址,如果有多個地址的話,我這里指定了服務器的IP地址192.168.0.1,
-p是設置Memcache監聽的端口,我 這里設置了11211,最好是1024以上的端口,
-c選項是最大運行的并發連接數,默認是1024,我這里設置了512,按照你服務器的負載量 來設定,
-P是設置保存Memcache的pid文件,我這里是保存

分布式部署

PHP的PECL擴展中的memcache實際上在2.0.0的版本中就已經實現多服務器支持,現在都已經2.2.5了。請看如下代碼

$memcache = new Memcache;$memcache->addServer('localhost', 11211);$memcache->addServer('localhost', 11213);$memcache->addServer('localhost', 11214);$memStats = $memcache->getExtendedStats();print_r($memStats);

通過上例就已經實現Memcache的分布式部署,是不是非常簡單。

分布式系統的良性運行

在Memcache的實際使用中,遇到的最嚴重的問題,就是在增減服務器的時候,會導致大范圍的緩存丟失,從而可能會引導數據庫的性能瓶頸。測試時可以通過關閉一個memcached進程,來測試數據是否存在,實例:

<?php//第一次設置值后再作注釋$memcache = new Memcache;$memcache->addServer('localhost', 11211);//$memcache->set("mykey", "這個值在11213添加前添加的");$memcache->addServer('localhost', 11213);if (!$memcache) echo "Connection to memcached failed";  /*  $memcache->set("str_key", "String to store in memcached");  $memcache->set("num_key", 123);  $object = new StdClass;  $object->attribute = 'test';  $memcache->set("obj_key", $object);  $array = Array('assoc'=>123, 345, 567);  $memcache->set("arr_key", $array);  */  var_dump($memcache->get('mykey'));  var_dump($memcache->get('str_key'));  var_dump($memcache->get('num_key'));  var_dump($memcache->get('obj_key'));$memStats = $memcache->getExtendedStats();var_dump($memStats);?>

測試時關閉其中一臺,可能會導致數據丟失:

string '這個值在11213添加前添加的' (length=35)string 'String to store in memcached' (length=28)boolean falseboolean false

為了避免出現這種情況,請先看Consistent hashing算法,中文的介紹可以參考memcached全面剖析--4. memcached的分布式算法,通過存取時選定服務器算法的改變,來實現。

memcached雖然稱為“分布式”緩存服務器,但服務器端并沒有“分布式”功能。

修改PHP的Memcache擴展memcache.c的源代碼中的

"memcache.hash_strategy" = standard

"memcache.hash_strategy" = consistent
重新編譯,這時候就是使用Consistent hashing算法來尋找服務器存取數據了。
有效測試數據表明,使用Consistent hashing可以極大的改善增刪Memcache時緩存大范圍丟失的情況。

NonConsistentHash: 92% of lookups changed after adding a target to the existing 10NonConsistentHash: 90% of lookups changed after removing 1 of 10 targetsConsistentHash: 6% of lookups changed after adding a target to the existing 10ConsistentHash: 9% of lookups changed after removing 1 of 10 targets

安全配置

Memcache服務器端都是直接通過客戶端連接后直接操作,沒有任何的驗證過程,這樣如果服務器是直接暴露在互聯網上的話是比較危險,輕則數據泄露被其他無關人員查看,重則服務器被入侵,因為Mecache是以root權限運行的,況且里面可能存在一些我們未知的bug或者是緩沖區溢出的情況,這些都是我們未知的,所以危險性是可以預見的。

內網訪問

最好把兩臺服務器之間的訪問是內網形態的,一般是Web服務器跟Memcache服務器之間。普遍的服務器都是有兩塊網卡,一塊指向互聯網,一塊指向內網,那么就讓Web服務器通過內網的網卡來訪問Memcache服務器,我們Memcache的服務器上啟動的時候就監聽內網的IP地址和端口,內網間的訪問能夠有效阻止其他非法的訪問。

 

復制代碼代碼如下:
# memcached -d -m 1024 -u root -l 192.168.0.200 -p 11211 -c 1024 -P /tmp/memcached.pid

Memcache服務器端設置監聽通過內網的192.168.0.200的ip的11211端口,占用1024MB內存,并且允許最大1024個并發連接

 

設置防火墻

防火墻是簡單有效的方式,如果卻是兩臺服務器都是掛在網的,并且需要通過外網IP來訪問Memcache的話,那么可以考慮使用防火墻或者代理程序來過濾非法訪問。 一般我們在Linux下可以使用iptables或者FreeBSD下的ipfw來指定一些規則防止一些非法的訪問,比如我們可以設置只允許我們的Web服務器來訪問我們Memcache服務器,同時阻止其他的訪問。

# iptables -F# iptables -P INPUT DROP# iptables -A INPUT -p tcp -s 192.168.0.2 --dport 11211 -j ACCEPT# iptables -A INPUT -p udp -s 192.168.0.2 --dport 11211 -j ACCEPT


上面的iptables規則就是只允許192.168.0.2這臺Web服務器對Memcache服務器的訪問,能夠有效的阻止一些非法訪問,相應的也可以增加一些其他的規則來加強安全性,這個可以根據自己的需要來做。



注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
色伦专区97中文字幕| 日韩在线中文视频| 欧美高清在线视频观看不卡| 日韩美女写真福利在线观看| 国产视频自拍一区| 亚洲成av人乱码色午夜| 97成人精品区在线播放| 亚洲精品欧美日韩| 国产91ⅴ在线精品免费观看| 精品一区精品二区| 亚洲国产精品视频在线观看| 日韩中文字幕在线免费观看| 日韩精品极品在线观看播放免费视频| 国产成一区二区| 亚洲欧美日韩国产中文| 久青草国产97香蕉在线视频| 国产一区二区三区视频免费| 97人人模人人爽人人喊中文字| 国产成人欧美在线观看| 97精品国产97久久久久久春色| 51精品国产黑色丝袜高跟鞋| 国产v综合ⅴ日韩v欧美大片| 国产成人一区二区三区小说| 亚洲影院色无极综合| 久久99热精品这里久久精品| 在线精品国产欧美| 91av在线精品| 国产精品久久久久久久久久新婚| 欧美黑人性生活视频| 全亚洲最色的网站在线观看| 超在线视频97| 成人福利网站在线观看11| 7m精品福利视频导航| 欧美视频在线观看 亚洲欧| 日韩电影在线观看永久视频免费网站| 成人做爰www免费看视频网站| 中文字幕亚洲欧美日韩2019| 国产精品在线看| 欧洲亚洲在线视频| 中文字幕在线精品| 久久久久久久久久久亚洲| 久久网福利资源网站| 亚洲精品福利在线观看| 久久夜色撩人精品| 亚洲精品福利免费在线观看| 亚洲网站在线播放| 欧美日韩免费在线观看| 日韩电影中文字幕在线| 亚洲а∨天堂久久精品9966| 精品无人区乱码1区2区3区在线| 国产精品久久久久久久久影视| 国产欧美久久一区二区| 精品久久久免费| 久久免费视频网| 日韩中文av在线| 欧美日韩国产一区中文午夜| 欧美性猛交xxxx| 国产性色av一区二区| 精品日韩视频在线观看| 亚洲91精品在线| 国产精品爽爽ⅴa在线观看| 国产不卡精品视男人的天堂| 欧美一乱一性一交一视频| 中文字幕精品—区二区| 亚洲一区亚洲二区| 成人妇女免费播放久久久| www.国产精品一二区| 日韩av免费看网站| 亚洲男女性事视频| 精品久久久久人成| 97视频在线观看免费| 国产成人精品视| 亚洲精品视频中文字幕| 国产精品嫩草影院久久久| 国产精品亚洲第一区| 久久综合久久美利坚合众国| 亚洲综合第一页| 91免费精品视频| 亚洲综合一区二区不卡| 国产在线观看精品| 午夜精品久久久久久久白皮肤| 好吊成人免视频| 亚洲精品suv精品一区二区| 综合网日日天干夜夜久久| 成人免费网站在线看| 91精品国产综合久久香蕉922| 亚洲美女激情视频| 国内精品视频一区| 国产在线999| 亚洲深夜福利在线| 欧美黄色www| 国产精品日韩精品| 精品视频偷偷看在线观看| 538国产精品一区二区在线| 国产69精品久久久久9| 北条麻妃一区二区三区中文字幕| 亚洲成人激情在线观看| 国产精品久久久久久久久免费看| 91九色国产社区在线观看| 中文字幕久热精品视频在线| 欧美国产日韩中文字幕在线| 欧美大学生性色视频| 国产一区欧美二区三区| 国产日韩欧美中文在线播放| 国产日韩精品一区二区| 国产婷婷成人久久av免费高清| 国产日韩欧美在线播放| 亚洲国产成人91精品| 亚洲国产精彩中文乱码av在线播放| 成人动漫网站在线观看| 欧美日韩亚洲视频一区| 欧美国产亚洲精品久久久8v| 久久免费视频在线观看| 亚洲色图17p| 91在线视频精品| 2019中文字幕在线免费观看| 日韩在线观看网站| 国产精品揄拍500视频| 日韩在线小视频| 久久久久久12| 亚洲日本欧美日韩高观看| 欧美精品免费在线观看| 91成人在线播放| 欧美刺激性大交免费视频| 欧美午夜影院在线视频| 欧美性极品xxxx娇小| 亚洲国产欧美一区二区三区久久| 日韩中文综合网| 在线观看91久久久久久| 成人午夜一级二级三级| 国产精品视频1区| 国产精品91久久久| 欧美极品少妇xxxxⅹ喷水| 日韩激情视频在线| 欧美日韩ab片| 精品视频中文字幕| 久久深夜福利免费观看| 国产一区二区美女视频| 国产91在线播放九色快色| 精品呦交小u女在线| 日韩精品中文字幕在线播放| 欧美黑人xxxⅹ高潮交| 亚洲成人久久一区| 日韩精品视频免费在线观看| 7777免费精品视频| 韩国欧美亚洲国产| 国产香蕉精品视频一区二区三区| 97视频在线观看播放| 久久国产加勒比精品无码| 国产精品免费福利| 久久噜噜噜精品国产亚洲综合| 国产中文字幕亚洲| 97香蕉久久夜色精品国产| 欧美性xxxxxxxxx| 久久av中文字幕| 欧美高清在线播放| 国产精品h在线观看| 亚洲美女av在线播放| 国产欧美一区二区三区久久| 亚洲综合自拍一区| 国产一区二区黑人欧美xxxx| 国产精品亚洲视频在线观看| 日韩在线视频播放| 亚洲欧美日韩中文在线|