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 |