<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
		<id>https://wiki.nonip.net/index.php?action=history&amp;feed=atom&amp;title=Php%2Fconsistent_hashing</id>
		<title>Php/consistent hashing - 変更履歴</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.nonip.net/index.php?action=history&amp;feed=atom&amp;title=Php%2Fconsistent_hashing"/>
		<link rel="alternate" type="text/html" href="https://wiki.nonip.net/index.php?title=Php/consistent_hashing&amp;action=history"/>
		<updated>2026-04-24T15:40:44Z</updated>
		<subtitle>このウィキのこのページに関する変更履歴</subtitle>
		<generator>MediaWiki 1.24.2</generator>

	<entry>
		<id>https://wiki.nonip.net/index.php?title=Php/consistent_hashing&amp;diff=537&amp;oldid=prev</id>
		<title>127.0.0.1: ページの作成:「==サンプル==  &lt;?php  /**   * 基底DAO   *   * @ex   *    // キャッシュ取得   *    if ($result = $this-&gt;getCache($this-&gt;_makeCacheKey(array($this-&gt;_cacheNameSp...」</title>
		<link rel="alternate" type="text/html" href="https://wiki.nonip.net/index.php?title=Php/consistent_hashing&amp;diff=537&amp;oldid=prev"/>
				<updated>2015-05-19T18:13:35Z</updated>
		
		<summary type="html">&lt;p&gt;ページの作成:「==サンプル==  &amp;lt;?php  /**   * 基底DAO   *   * @ex   *    // キャッシュ取得   *    if ($result = $this-&amp;gt;getCache($this-&amp;gt;_makeCacheKey(array($this-&amp;gt;_cacheNameSp...」&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==サンプル==&lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
 /**&lt;br /&gt;
  * 基底DAO&lt;br /&gt;
  *&lt;br /&gt;
  * @ex&lt;br /&gt;
  *    // キャッシュ取得&lt;br /&gt;
  *    if ($result = $this-&amp;gt;getCache($this-&amp;gt;_makeCacheKey(array($this-&amp;gt;_cacheNameSpace, $id)))) {&lt;br /&gt;
  *        return $result;&lt;br /&gt;
  *    } else {&lt;br /&gt;
  *        // 処理実行&lt;br /&gt;
  *        &lt;br /&gt;
  *        // キャッシュ設定&lt;br /&gt;
  *        $this-&amp;gt;setCache($this-&amp;gt;_makeCacheKey(array($this-&amp;gt;_cacheNameSpace, $id)), $result);&lt;br /&gt;
  *        return $result;&lt;br /&gt;
  *    }&lt;br /&gt;
  *&lt;br /&gt;
  * -memcached.ini&lt;br /&gt;
  * memcached.1.host = &amp;quot;localhost&amp;quot;&lt;br /&gt;
  * memcached.1.port = &amp;quot;11211&amp;quot;&lt;br /&gt;
  * memcached.2.host = &amp;quot;localhost2&amp;quot;&lt;br /&gt;
  * memcached.2.port = &amp;quot;11211&amp;quot;&lt;br /&gt;
  */&lt;br /&gt;
 class AbstractDao extends Zend_Db_Table_Abstract&lt;br /&gt;
 {&lt;br /&gt;
     // キャッシュ&lt;br /&gt;
     private $_cache;&lt;br /&gt;
     // キャッシュnamespace&lt;br /&gt;
     protected $_cacheNameSpace;&lt;br /&gt;
     &lt;br /&gt;
     /**&lt;br /&gt;
      * キャッシュコネクション生成&lt;br /&gt;
      */&lt;br /&gt;
     public function createCacheConnection()&lt;br /&gt;
     {&lt;br /&gt;
         try {&lt;br /&gt;
             // configロード&lt;br /&gt;
             $config = new Zend_Config_Ini(APPLICATION_PATH . '/../configs/memcached.ini', APPLICATION_ENV);&lt;br /&gt;
             &lt;br /&gt;
             // キャッシュロード&lt;br /&gt;
             $this-&amp;gt;_cache = new Memcached();&lt;br /&gt;
             &lt;br /&gt;
             // libketama設定&lt;br /&gt;
             $this-&amp;gt;_cache-&amp;gt;setOption(Memcached::OPT_LIBKETAMA_COMPATIBLE, true);&lt;br /&gt;
             &lt;br /&gt;
             // memcachedサーバ設定&lt;br /&gt;
             $result = $this-&amp;gt;_cache-&amp;gt;addServers(array(&lt;br /&gt;
                 array($config-&amp;gt;memcached-&amp;gt;{1}-&amp;gt;host, $config-&amp;gt;memcached-&amp;gt;{1}-&amp;gt;port, 50),&lt;br /&gt;
                 array($config-&amp;gt;memcached-&amp;gt;{2}-&amp;gt;host, $config-&amp;gt;memcached-&amp;gt;{2}-&amp;gt;port, 50),&lt;br /&gt;
             ));&lt;br /&gt;
             &lt;br /&gt;
             // キャッシュキー&lt;br /&gt;
             $this-&amp;gt;_cacheNameSpace = $this-&amp;gt;_makeCacheKey(array($this-&amp;gt;_schema, $this-&amp;gt;_name));&lt;br /&gt;
             &lt;br /&gt;
             // 接続失敗の場合&lt;br /&gt;
             if (!$result) {&lt;br /&gt;
                 throw new Exception('error memcached connection');&lt;br /&gt;
             }&lt;br /&gt;
         }&lt;br /&gt;
         catch(Exception $e) {&lt;br /&gt;
             die($e-&amp;gt;getMessage());&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
     &lt;br /&gt;
     /**&lt;br /&gt;
      * キャッシュ設定&lt;br /&gt;
      */&lt;br /&gt;
     public function setCache($key, $value)&lt;br /&gt;
     {&lt;br /&gt;
         $result = $this-&amp;gt;_cache-&amp;gt;set($key, $value, time() + 86400);&lt;br /&gt;
         &lt;br /&gt;
         // 設定失敗の場合&lt;br /&gt;
         if (!$result) {&lt;br /&gt;
             throw new Exception('error memcached set');&lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
     &lt;br /&gt;
     /**&lt;br /&gt;
      * キャッシュ取得&lt;br /&gt;
      */&lt;br /&gt;
     public function getCache($key)&lt;br /&gt;
     {&lt;br /&gt;
         $result = $this-&amp;gt;_cache-&amp;gt;get($key);&lt;br /&gt;
         return $result;&lt;br /&gt;
     }&lt;br /&gt;
     &lt;br /&gt;
     /**&lt;br /&gt;
      * キャッシュ削除&lt;br /&gt;
      */&lt;br /&gt;
     public function delCache($key)&lt;br /&gt;
     {&lt;br /&gt;
         $this-&amp;gt;_cache-&amp;gt;delete($key);&lt;br /&gt;
     }&lt;br /&gt;
     &lt;br /&gt;
     /**&lt;br /&gt;
      * 全てのキャッシュを破棄する&lt;br /&gt;
      */&lt;br /&gt;
     public function flushCache()&lt;br /&gt;
     {&lt;br /&gt;
         $this-&amp;gt;_cache-&amp;gt;flush();&lt;br /&gt;
     }&lt;br /&gt;
     &lt;br /&gt;
     /**&lt;br /&gt;
      * キャッシュキー作成&lt;br /&gt;
      */&lt;br /&gt;
     protected function _makeCacheKey($keys)&lt;br /&gt;
     {&lt;br /&gt;
         return implode('_', $keys);&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
==必須ライブラリ==&lt;br /&gt;
pecl::memcached&lt;br /&gt;
http://php.benscom.com/manual/ja/book.memcached.php&lt;br /&gt;
&lt;br /&gt;
libketama&lt;br /&gt;
http://www.lastfm.jp/user/RJ/journal/2007/04/10/rz_libketama_-_a_consistent_hashing_algo_for_memcache_clients&lt;br /&gt;
&lt;br /&gt;
libmemcached&lt;br /&gt;
http://freshmeat.net/projects/libmemcached&lt;br /&gt;
&lt;br /&gt;
==インストール確認==&lt;br /&gt;
 $  php -R ' phpinfo(); exit(); ' | grep memcached&lt;br /&gt;
 &lt;br /&gt;
 memcached&lt;br /&gt;
 memcached support =&amp;gt; enabled&lt;br /&gt;
 libmemcached version =&amp;gt; 0.44&lt;br /&gt;
 Registered save handlers =&amp;gt; files user sqlite memcache memcached&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==参考==&lt;br /&gt;
http://matano-bros.com/blog/archives/1335&lt;/div&gt;</summary>
		<author><name>127.0.0.1</name></author>	</entry>

	</feed>