项目在本地开发过程中抛出异常:

function redis::settimeout() is deprecated

找到出错代码:

<?php
use illuminate\support\facades\redis;
...
redis::settimeout($key, $timeout);

项目使用的 phpredis 扩展来操作 redis,phpredis 5.0 版后弃用了非 redis 标准命令的方法(https://pecl.php.net/package-changelog.php?package=redis&release=5.0.0rc1)。比如 phpredis 原来的 delete 方法由 del 替代,settimeout 方法由 expire 替代。概括一点:phpredis 方法名使用 redis 标准命令名就总是对的。

解决代码:

<?php
use illuminate\support\facades\redis;
...
redis::expire($key, $timeout);

详细的弃用与替代方法名在参考链接中的文章里。

参考链接:

function redis::delete() is deprecated 的解决方法()