调用CakePHP 2.10.24上未定义的方法Redis:delete()



我在AWS Elastic Beanstalk PHP 7.3上运行一个应用程序,该应用程序在64位Amazon Linux/22.9.12上运行,最近我开始收到以下错误-

Call to undefined method Redis::delete()

我有一个Redis缓存配置,我可以写入和读取。但当我试图删除相同的内容时,我会出现上面的错误。这种情况以前从未发生过。我已经正确配置了如下所示的缓存

Cache::config('1min', [
'engine' => CACHE_ENGINE,
'server' => CACHE_HOST,
'port' => CACHE_PORT,
'prefix' => CACHE_PREFIX,
'duration'=>'+1 minute'
]);

我能够执行以下操作

Cache::write('cache1', 'value', '1min');
Cache::read('cache1', '1min');

没有任何错误。只有当我尝试使用以下命令删除密钥时

Cache::delete('cache1', '1min');

我得到了上面的错误。

我使用的是通过.eextensions安装的phpredis

https://github.com/phpredis/phpredis/archive/develop.zip -O phpredis.zip

在做了一些研究后,我发现Redis.php中的删除功能是不推荐的,因为它很快就会被删除。当我更改第176行RedisEngine.php文件(这是一个CakePHP库文件,通过composer作为依赖项下载(中的函数调用时

public function delete($key) {
return $this->_Redis->delete($key) > 0;
}

public function delete($key) {
return $this->_Redis->del($key) > 0;
}

缓存删除操作正常。这种情况以前从未发生过。如果我能尽早得到一些帮助,我将不胜感激。

谢谢!

在phpredis的文档中,写为注释:

注意:deletedel的别名,将在phpredis的未来版本中删除。

请考虑使用unlink而不是deletedel方法,因为unlink是异步工作的,这不会阻止代码执行。

请注意,只有当您的redis版本等于或大于4.0.0 时,unlink才可用

相关内容

  • 没有找到相关文章

最新更新