配置Yii2的redis扩展(本文使用Yii2 basic 版)

官方提供的文档地址:https://github.com/yiisoft/yii2-redis/blob/master/docs/guide/README.md


  • 1. 安装Yii2的redis扩展

cd /www/html/basic
php composer.phar require --prefer-dist yiisoft/yii2-redis

2. 配置basic/config/web.php

在components数组中添加如下内容:

'redis' => [
    'class' => 'yii\redis\Connection',
    'hostname' => 'localhost',
    'port' => 6379,
    'database' => 0,
],

3. 使用

$redis = Yii::$app->redis;
$redis->get('key');
$redis->set('k','v');

附加(一些报错解决)

basic/vendor/yiisoft/yii2-redis/Connection.php文件的源码中265行开始(因实际而定)

  • 变量 errorNumber 、errorDescription ,没提前定义Yii2 一直报undefined

  • "@"把报错屏蔽了,一直查不到原因,删掉"@"才发现stream_socket_client、stream_socket_server()这两个函数禁用了

更改前

$this->_socket = @stream_socket_client( 
            $this->unixSocket ? 'unix://' . $this->unixSocket : 'tcp://' . $this->hostname . ':' . $this->port,
            $errorNumber,      
            $errorDescription,
            $this->connectionTimeout ? $this->connectionTimeout : ini_get("default_socket_timeout")
);

更改后

//也可以不定义这两个变量,通常项目都会忽略notice报错,视实际情况而定
$errorNumber = '';
$errorDescription = '';
//----如果报错:Warning:stream_socket_server() has been disabled for security reasons... 请看下面解决方法
//----这里"@" ↓↓↓ 把报错屏蔽了,需要删除"@"才能看见上面的报错,
$this->_socket = stream_socket_client( 
            $this->unixSocket ? 'unix://' . $this->unixSocket : 'tcp://' . $this->hostname . ':' . $this->port,
            $errorNumber,      //----这两个变量没有提前定义一直报undefined
            $errorDescription, //----这两个变量没有提前定义一值报undefined
            $this->connectionTimeout ? $this->connectionTimeout : ini_get("default_socket_timeout")
);

解决方法:编辑php.ini把disable_functions=...中找到stream_socket_server()、stream_socket_client删除并保存,重启web组件即可


文章源地址:http://www.yiichina.com/tutorial/550

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值