Насколько я могу понять, похоже, это способ настроить Memcached и установить TTL и пространство имен, но они не имеют никакого эффекта в кеше. Ключ не имеет префикса с пространством имен, а истечение - бесконечно.Установите ttl и пространство имен, используя Memcached в Zend Framework 2
$MemcachedOptions = new \Zend\Cache\Storage\Adapter\MemcachedOptions();
$MemcachedResourceManager = new \Zend\Cache\Storage\Adapter\MemcachedResourceManager(1, new \Zend\Cache\Storage\Adapter\Memcached());
$MemcachedResourceManager->addServer(1, array('localhost', 11211));
$MemcachedOptions->setResourceManager($MemcachedResourceManager);
$MemcachedOptions->setNamespace('FooBar_');
$MemcachedOptions->setTtl(10);
$cache = $MemcachedOptions->getResourceManager()->getResource(1);
$cache->set('foobar_key','I am in cache');
У кого-нибудь есть подсказки, подсказки? Любая помощь приветствуется.
Отлично! Это работает (сменил namesapce на пространство имен). Спасибо за два пути, которые помогают моему пониманию. – Roland
Пытается размахивать «разными экземплярами .. \ Memcached для разных типов предметов». Что такое «элементы» в этом контексте и зачем вам нужен другой экземпляр Memcached? На заводе-изготовителе всегда будет использоваться тот же экземпляр (если вы не скажете об этом иначе) ... нет? – Roland
'' различные экземпляры .. \ Memcached для разных типов элементов': одним типом элемента могут быть пользователи, а другой тип может быть продуктом. Каждый из них хотел бы иметь настроенное другое пространство ttl/namespace. Если вам не нравится изменять конфигурацию перед сохранением или чтением элемента, вам нужны разные экземпляры. PS: 'Zend \ Cache \ StorageFactory'' не использует экземпляры - он создает новый экземпляр для каждого вызова. –