首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用Zend框架2设置Redis缓存?

如何用Zend框架2设置Redis缓存?
EN

Stack Overflow用户
提问于 2013-05-31 13:47:48
回答 1查看 7.6K关注 0票数 0

有人可以帮助我建立红色缓存与zend框架。我已经成功地设置了文件系统缓存如下。global.pgp

代码语言:javascript
复制
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

代码语言:javascript
复制
'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;
                },
            )

在控制器中,我以下面的方式调用缓存。

代码语言:javascript
复制
$this->cache->setItem('samplecache', $data);

如果您的帮助非常感谢的话

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-05 08:56:20

在配置文件中有:

代码语言:javascript
复制
...
    'my-redis-cache' => array (
            'adapter' => array (
                    'name' => 'redis',
                    'options' => array (
                            'server' => [
                                    'host' => '127.0.0.1',
                                    'port' => 6379,
                            ]
                    )
            ),
    )
...

然后在控制器的某个地方:

代码语言:javascript
复制
use Zend\Cache\StorageFactory;

...

$redis = StorageFactory::factory ($this->getServiceLocator ()
        ->get ('config') ['my-redis-cache']);

if ($redis->hasItem ('key'))
{
        $value = $redis->getItem ('key');
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16858838

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档