2013-09-26 00:59:32 6198次浏览 2条回答 0 悬赏 2 金钱

按照插件的说明配置了redis组件,也配置了启动导入如下:

main.php

'import'=>array(
    'application.models.',
    'application.components.',
    'application.modules.srbac.controllers.SBaseController',
    'ext.YiiRedis.*',
),  

"redis"=>array(
    "class"=>"ext.YiiRedis.ARedisConnection",
    "hostname"=>"localhost",
    "port"=>6379,
    "database"=>1,
    "prefix"=>"Yii.redis."
),

但是在应用中使用代码测试读取的时候,什么数据都读不到:

<?php echo Yii::app()->redis->getClient()->get('name1'); ?>

说明:redis 中 key "name1" 是有数据的,另外,用 phpredis 读取正常,

即如果在类构造函数中:

public function __construct()
{
    $this->_redis = new Redis();
    $this->_redis->connect('127.0.0.1',6379);
}

则通过这个成员变量可以顺利读取到 key "name1"的值,并显示。

if(isset($this->_redis))
   return $this->_redis->get('name1');
  else
   return 'N/A';

这里 name1 的值可以在web上正常显示。。。。

无语了,有没有同学碰到过这样的情况??

  • 回答于 2013-09-26 17:39 举报

    不知道你用的啥扩展。。直接升级到1.1.14呗,直接支持redis

    2 条回复
    回复于 2013-09-28 16:23 回复

    额,貌似我正在用的就是1.1.14...

    回复于 2013-09-28 16:41 回复

    仍然悲剧了,配置了 1.1.1 4的 rediscache,系统启动初始化时,在未启动redis数据库之前,会提示链接 redis 失败,表示main.php初始化之后是会成功链接数据库的。启动 redis 之后,执行 Yii::app()->cache->get('name1'); 仍然是空值。。。百思不得其解。。。

  • 回答于 2014-12-04 11:56 举报

    你使用的YiiRedis插件,在配置中默认读取的是数据库1: "database"=>1,
    使用phpredis默认读取的是数据库0,
    所以你上面读取不到数据的原因可能是:数据库1中没有相应的数据。

您需要登录后才可以回答。登录 | 立即注册
davidwei
试用期

davidwei

注册时间:2013-09-26
最后登录:2013-09-28
在线时长:0小时20分
  • 粉丝0
  • 金钱28
  • 威望0
  • 积分28

热门问题