diff --git a/inc/classes/BxDolCacheMemcache.php b/inc/classes/BxDolCacheMemcache.php index 67cfaa06fb..60cb0f418b 100644 --- a/inc/classes/BxDolCacheMemcache.php +++ b/inc/classes/BxDolCacheMemcache.php @@ -21,8 +21,22 @@ function __construct() parent::__construct(); if (class_exists('Memcache')) { $this->oMemcache = new Memcache(); - if (!$this->oMemcache->connect (getParam('sys_cache_memcache_host'), getParam('sys_cache_memcache_port'))) - $this->oMemcache = null; + $sHost = getParam('sys_cache_memcache_host'); + if (false === strpos($sHost, ',')) { + if (!$this->oMemcache->connect (getParam('sys_cache_memcache_host'), getParam('sys_cache_memcache_port'))) + $this->oMemcache = null; + } + else { + // setting memcache.hash_strategy = consistent is recommended + $aHosts = explode(',', $sHost); + if ($aHosts) { + foreach ($aHosts as $s) + $this->oMemcache->addServer(trim($s), getParam('sys_cache_memcache_port')); + } + else { + $this->oMemcache = null; + } + } } }