有人可以帮我用zend框架设置redis缓存。我已成功设置文件系统缓存,如下所示。 global.pgp
return array(
'db' => array(
'driver' => 'Pdo',
'dsn' => 'mysql:dbname=tvguide;host=localhost',
'driver_options' => array(
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''
),
),
'service_manager' => array(
'factories' => array(
'Zend\Db\Adapter\Adapter'
=> 'Zend\Db\Adapter\AdapterServiceFactory',
),
'factories' => array(
'Zend\Db\Adapter\Adapter' => 'Zend\Db\Adapter\AdapterServiceFactory',
'Zend\Cache\Storage\Filesystem' => function($sm) {
$cache = Zend\Cache\StorageFactory::factory(array(
'adapter' => 'filesystem',
'plugins' => array(
'exception_handler' => array('throw_exceptions' => false),
'serializer'
)
));
$cache->setOptions(array(
'cache_dir' => './data/cache'
));
return $cache;
},
),
),
);
我的Module.php
'factories' => array(
'json_hub\Model\Entity\CustomerQueriesTable' => function($sm) {
$dbAdapter = $sm->get('Zend\Db\Adapter\Adapter');
$cacheAdapter = $sm->get('Zend\Cache\Storage\Filesystem');
$table = new Model\Entity\CustomerQueriesTable($dbAdapter);
$table->setCache($cacheAdapter);
return $table;
},
)
在控制器中,我将调用缓存。
$this->cache->setItem('samplecache', $data);
如果受到高度赞赏,你的帮助
答案 0 :(得分:3)
有配置文件:
...
'my-redis-cache' => array (
'adapter' => array (
'name' => 'redis',
'options' => array (
'server' => [
'host' => '127.0.0.1',
'port' => 6379,
]
)
),
)
...
然后在控制器的某个地方:
use Zend\Cache\StorageFactory;
...
$redis = StorageFactory::factory ($this->getServiceLocator ()
->get ('config') ['my-redis-cache']);
if ($redis->hasItem ('key'))
{
$value = $redis->getItem ('key');
}