主頁 > 知識庫 > PHP實現普通hash分布式算法簡單示例

PHP實現普通hash分布式算法簡單示例

熱門標簽:桂陽公司如何做地圖標注 電信外呼系統多少錢一個月 萍鄉商鋪地圖標注 神龍斗士電話機器人 代理打電話機器人 企業400電話辦理多少費用 太原400電話申請流程 宿州正規外呼系統軟件 合肥企業外呼系統線路

本文實例講述了PHP實現普通hash分布式算法。分享給大家供大家參考,具體如下:

?php
/*
 * 普通hash分布式算法
 * @param $key
 * @return int
 */
class Hash{
  protected $_serverList = array();
  public function __construct($_serverList){
    if(is_array($_serverList)){
      $this->_serverList = $_serverList;
    }else{
      return false;
    }
  }
  //通過hash算法返回一個整數值
  protected function myHash($key){
    $md5 = substr(md5($key),0,8);
    $seed = 31; //種子值
    $hash=0;
    for($i=0;$i8;$i++){
      $hash = $hash*$seed+ord($md5{$i}); //ord 返回ascii值
      $i++;
    }
    return $hash0x7FFFFFFF; //0x7FFFFFFF表示最大值
  }
  public function getServer($key){
    $servers = $this->_serverList;
    $rs = $servers[$this->myHash($key)%(count($servers))];
    return $rs;
  }
}
$servers = array(
  array('host'=>'192.168.1.1','port'=>6397),
  array('host'=>'192.168.1.2','port'=>6397),
  array('host'=>'192.168.1.3','port'=>6397),
  array('host'=>'192.168.1.4','port'=>6397),
  array('host'=>'192.168.1.5','port'=>6397),
  array('host'=>'192.168.1.6','port'=>6397),
  array('host'=>'192.168.1.7','port'=>6397),
);
$key = 'TheKey'.rand(0,99999);
$value = 'TheValue';
$hash = new Hash($servers);
if($hash){
  $server = $hash->getServer($key);
  // $memcached = new Memcached($sc);
  // $memcached->set($key,$value);
}
?>

PS:這里再為大家提供2款hash相關在線工具供大家參考使用:

在線散列/哈希算法加密工具:
http://tools.jb51.net/password/hash_encrypt

在線MD5/hash/SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160加密工具:
http://tools.jb51.net/password/hash_md5_sha

更多關于PHP相關內容感興趣的讀者可查看本站專題:《php加密方法總結》、《PHP編碼與轉碼操作技巧匯總》、《PHP數學運算技巧總結》、《PHP數組(Array)操作技巧大全》、《php字符串(string)用法總結》、《PHP數據結構與算法教程》、《php程序設計算法總結》及《php正則表達式用法總結》

希望本文所述對大家PHP程序設計有所幫助。

您可能感興趣的文章:
  • php 分庫分表hash算法
  • php的hash算法介紹
  • PHP中對各種加密算法、Hash算法的速度測試對比代碼
  • PHP Hash算法:Times33算法代碼實例
  • PHP實現的各類hash算法長度及性能測試實例
  • PHP實現的一致性Hash算法詳解【分布式算法】
  • PHP實現的一致性HASH算法示例
  • PHP一致性hash分布式算法封裝類定義與用法示例
  • PHP實現的服務器一致性hash分布算法示例

標簽:鄂州 辛集 太原 綏化 崇左 白銀 衡陽 廊坊

巨人網絡通訊聲明:本文標題《PHP實現普通hash分布式算法簡單示例》,本文關鍵詞  PHP,實現,普通,hash,分布式,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PHP實現普通hash分布式算法簡單示例》相關的同類信息!
  • 本頁收集關于PHP實現普通hash分布式算法簡單示例的相關信息資訊供網民參考!
  • 推薦文章
    2020久久精品亚洲|久久窝窝国产精品午夜看片|亚洲 日韩 激情 无码 中出|国产精品乱码高清在线