gpt4 book ai didi

memcached - 在 Zend Framework 2 中使用 Memcached 设置 ttl 和命名空间

转载 作者:行者123 更新时间:2023-12-03 06:49:43 31 4
gpt4 key购买 nike

据我所知,这似乎是设置 Memcached 并设置 TTL 和命名空间的方法,但它们对缓存没有影响。该 key 没有命名空间前缀,并且过期时间是无限的。

    $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');

有人有任何提示、线索吗?任何帮助将不胜感激。

最佳答案

当您尝试使用MemcachedResourceManager时,它的工作方式会有所不同。

您应该像下面这样初始化它:

// init a memcached resource manager with one native memcached resource
// using resource id "1"
$MemcachedResourceManager = new \Zend\Cache\Storage\Adapter\MemcachedResourceManager();
$MemcachedResourceManager->addServer('1', array('localhost', 11211));

// init a memcached storage adapter
// using the native memcached resource of id "1"
// configure it with a ttl and a namespace
$cache = \Zend\Cache\StorageFactory::adapterFactory('memcached', array(
'resource_manager' => $MemcachedResourceManager,
'resource_id' => '1',
'namespace' => 'FooBar_',
'ttl' => 10,
));

// or
$memcachedAdapterOptions = new \Zend\Cache\Storage\Adapter\MemcachedOptions(array(
'resource_manager' => $MemcachedResourceManager,
'resource_id' => '1',
'namespace' => 'FooBar_',
'ttl' => 10,
));
$cache = new \Zend\Cache\Storage\Adapter\Memcached($memcachedAdapterOptions);

这些类如何协同工作:

最重要的类是 Zend\Cache\Storage\Adapter\Memcached,它是在 Zend 上下文中使用的 Memcached native 实例的包装器\Cache\StorageInterface

此存储适配器有许多定义为 Zend\Cache\Storage\Adapter\MemcachedOptions 的选项。

因为 ZF2 中的缓存存储适配器旨在处理一种类型的项目来存储,所以您需要不同的 Zend\Cache\Storage\Adapter\Memcached 实例来存储不同类型的项目。但是您不习惯使用与 memcached( native Memcached 类的不同实例)服务器的不同连接 - 这是 Zend\Cache\Storage\Adapter\MemcachedResourceManager来玩了。

Zend\Cache\Storage\Adapter\MemcachedResourceManager 处理 Memcached 的 native 实例,该实例将由 Zend\Cache\Storage\Adapter\Memcached.

关于memcached - 在 Zend Framework 2 中使用 Memcached 设置 ttl 和命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18495396/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com