php - tp5 实例化redis 出错,求解
高洛峰
高洛峰 2017-04-11 10:13:49
0
3
469

框架内缓存驱动redis不能满足需要,想要自己连接redis,在助手函数中新增load_redis 函数代码如下

/**
 * lubTicket redis 操作API
 * @param  string $apiport 要操作的接口
 * @param  string $key     键名
 * @param  string $value   键值
 * @param  string $time    有效时间
 * @return true|false  
 */
function load_redis($apiport,$key,$value = '',$time = ''){
    $redis = new \Redis();
    $redis->connect(think\Config::get('REDIS_HOST'),think\Config::get('REDIS_PORT'));
    $redis->select(think\Config::get('REDIS_DATABASE'));
    switch ($apiport) {
        case 'lsize':
            //判断列表中元素个数
            $return = $redis->lsize($key);
            break;
        case 'rPop':
            //获取队列中最后一个元素,且移除
            if((int)$redis->lsize($key) > 0){
                $return = $redis->rPop($key);
            }else{
                $return = false;
            }
            break;
        case 'lpush':
            //写入带处理队列,若存在则不再写入
            $return = $redis->lPush($key,$value);
            break;
        case 'set':
            $return = $redis->set($key,$value);
            break;
        case 'setex':
            /**
             * 设置有效期
             */
            $return = $redis->setex($key, $time, $value);
            break;
        case 'get':
            $return = $redis->get($key);
            break;
        case 'lrange':
            //返回list 中的元素 返回名称为key的list中start至end之间的元素(end为 -1 ,返回所有) value 为开始位置 $time 为结束位置
            $return = $redis->lrange($key,$value,$time);
            break;
        case 'delete':
            //删除指定key
            $return = $redis->delete($key);
            break;
    }
    return $return;
}

运行返回如下错误:
Redis::connect(): php_network_getaddresses: getaddrinfo failed: Name or service not known
服务器环境正常,redis 运行正常,若使用tp5提供的缓存驱动可以正常使用reids
求大神指点

看到系统缓存驱动内有提示说使用redisd 驱动,请问驱动在那下载

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(3)
巴扎黑

先确认是否读到配置文件再说

Peter_Zhu

tp5直接使用config('REDIS_HOST')这样的方式读取配置文件更简洁一些。

刘奇

我看了下tp5里面确实把__call去掉了,不过提供了handler方法返回缓存(你这里对应redis)对象,你要的操作还是能满足的.

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!