在我的项目中,我想在使用memcached时使用redis(它是一个旧系统,我不想直接替换memcached)。但是当我尝试将元素推入redis列表时,我遇到了异常"读取连接错误"。我发现如果在连接redis之前连接memcached,它总是抛出这个异常,但是首先连接redis可以避免这个问题。
环境: Nginx + php-fpm + PHP 5.3.3 + Redis 2.8.19
使用connect而不是pconnect可以修复此异常。但我更喜欢使用pconnect。 这是我的代码:
$memCache = new Memcached ('client');
$memCache->addServer('127.0.0.1', '8022');
$memCache->set ('mcKey', 1);
echo $memCache->get('mcKey');
$redis = new Redis();
$redis->pconnect('127.0.0.1', '6379', 1000);
$redis->setOption(Redis::OPT_READ_TIMEOUT, -1);
try {
$redis->lPush('mykey', 1, 2);
echo 'OK';
} catch (Exception $e) {
echo $e->getMessage();
}
这里的代码有问题吗?