phpredis:err:未知命令

yzckvree  于 2021-06-08  发布在  Redis
关注(0)|答案(1)|浏览(530)

我通过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 unknown command'选择'�'
'错误未知命令'set'�'
'err unknown命令'get'�'
错误消息似乎包含一些错误编码的字符,这可能是问题的原因。
我已经尝试安装不同的版本:5.3.1和5.2.0,但结果是一样的。

ldxq2e6h

ldxq2e6h1#

解决了的:
我们的redis处于哨兵模式:

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

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

// 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

相关问题