【问题标题】:phpredis: ERR: unknown commandphpredis:错误:未知命令
【发布时间】:2020-08-20 09:51:03
【问题描述】:

我通过 pecl 将 phpredis 安装到我的 docker 容器中(使用 PHP-7.4.1-apache-buster 运行):

RUN pecl install -f redis-5.3.1 && docker-php-ext-enable redis

我已连接到 redis 服务器,但是对于我得到的所有命令:ERR: unknown command

$redis->select(1);

$redis->getLastError();

$redis->set('test', 'test');

$redis->getLastError();

$redis->get('test');

$redis->getLastError();

getLastError() 返回的地方:

'ERR 未知命令'SELECT'''

'ERR 未知命令'SET'''

'ERR 未知命令'GET'''

看起来错误消息包含一些错误编码的字符,这可能是问题的原因。

我已经尝试安装不同的版本:5.3.1 和 5.2.0 但结果是一样的。

【问题讨论】:

    标签: php redis dockerfile phpredis


    【解决方案1】:

    已解决:

    我们的 redis 处于哨兵模式:

    $redis->info();
    //"redis_mode": "sentinel",
    

    这意味着我首先需要连接 RedisSentinel,然后获取 master 地址,然后连接到该 master,如下所示:

    // connect to sentinel
    $sentinel = new RedisSentinel('ip', 'port', 10);
    
    // get the master ip and port you want to use
    $address = $sentinel->getMasterAddrByName('your-master-name');
    
    $redis = new Redis();
    // connect to that master
    $redis->pconnect($address[0], $address[1], 10);
    
    // select the db
    $redis->select(1);
    
    // ready
    

    【讨论】:

      猜你喜欢
      • 2011-05-04
      • 2016-08-18
      • 2012-04-24
      • 2013-12-13
      • 1970-01-01
      • 1970-01-01
      • 2017-10-06
      • 1970-01-01
      • 2022-07-26
      相关资源
      最近更新 更多