1.一臺機器上通過多個端口號
2.取% 進行循環分數據到服務中
3.nginx
輪詢
一致性hash
sphinx 分佈式 配置文件
(1)命名規則
(2)根據什麼來劃分(用戶id、一致性hash)
(3)算法
consistent hashing算法的基本原理
Consistent hashing 的基本思想就是將對象和 cache 都映射到同一個 hash 數值空間中,並且使用相同的 hash 算法。
以前一般用的是最原始的hash取模做分佈式,當生產過程中添加或刪除一臺memcache都會造成數據的全部失效,一致性hash就是爲了解決這個問題,把失效數據降到memcache分佈式 最低
1.首先環形HASH空間
2.將object映射到hash空間中
3.將cache映射到hash空間中
4.將object映射到cache中
memcache分佈式缺點:
當某臺服務器宕機,數據就會永遠丟失,會給服務器造成一定損失。
/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
|
/usr/local/bin/memcached -d -p 11215-u
root -m 10-c 1024-t 8-P /tmp/memcached.pid |
$memcache =newMemcache;
|
$memcache->addServer('localhost',11213);
|
$memcache->addServer('localhost',11214);
|
$memcache->addServer('localhost',11215);
|
$memStats = $memcache->getExtendedStats();
|
print_r($memStats); |
修改PHP的Memcache擴展memcache.c的源代碼中的
"memcache.hash_strategy"= standard |
爲
"memcache.hash_strategy"= consistent |