介绍
怎么在PHP中实现一个散列分布式算法?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
具体如下:
& lt; PHP ?/* ,*普通散列分布式算法 ,* @param 关键美元 ,* @return int ,*/class 哈希{ protected 才能;_serverList 美元;=,数组(); public 才能;function  __construct (_serverList美元){ ,,,如果(is_array (_serverList美元)){ ,,,,,这个→美元_serverList =, _serverList美元; 还有,,,}{ ,,,,,return 假; ,,,} ,,}//才能通过哈希算法返回一个整数的值 protected 才能;function  myHash(键){ ,,,md5 美元;=,substr (md5(键)美元0 8); ,,,seed 美元;=,31日,,//种子值 ,,,哈希美元=0; ,,,(i=0; i<美元;8美元我+ +){ ,,,,,hash 美元;=,散列*种子+奥德美元($ md5 {$ i});,//ord 返回ascii值 ,,,,,我+ +美元; ,,,} ,,,return hash&美元;0 x7fffffff;,//0 x7fffffff表示最大值 ,,} public 才能;function  getServer(键){ ,,,servers 美元;=,$ this→_serverList; rs 美元,,,,=,服务器美元($ this→myHash(键)% (count($服务器))]; ,,,return rs美元; ,,} } $ servers =,阵列( 数组才能(& # 39;主机# 39;=祝辞& # 39;192.168.1.1 # 39;,& # 39;港口# 39;=祝辞;6397), 数组才能(& # 39;主机# 39;=祝辞& # 39;192.168.1.2& # 39;,& # 39;港口# 39;=祝辞;6397), 数组才能(& # 39;主机# 39;=祝辞& # 39;192.168.1.3 # 39;,& # 39;港口# 39;=祝辞;6397), 数组才能(& # 39;主机# 39;=祝辞& # 39;192.168.1.4& # 39;,& # 39;港口# 39;=祝辞;6397), 数组才能(& # 39;主机# 39;=祝辞& # 39;192.168.1.5& # 39;,& # 39;港口# 39;=祝辞;6397), 数组才能(& # 39;主机# 39;=祝辞& # 39;192.168.1.6& # 39;,& # 39;港口# 39;=祝辞;6397), 数组才能(& # 39;主机# 39;=祝辞& # 39;192.168.1.7& # 39;,& # 39;港口# 39;=祝辞;6397), ); 时间=美元key & # 39;重点# 39;.rand (0, 99999); 时间=美元value & # 39;价值进行# 39;; $ hash =, new 哈希($服务器); 如果(散列美元){ 美元才能server =,散列→美元getServer(关键);//才能,memcached 美元;=,new Memcached (sc);//才能,memcached→美元(键,美元价值); } ?在
看完上述内容,你们掌握怎么在PHP中实现一个散列分布式算法的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!