Deprecated: Function Redis::delete() is deprecated

PHP 操作 Redis 时遇到如下的问题

Deprecated: Function Redis::delete() is deprecated


原因:php-redis 5 版本弃用了 Redis::delete()

php -r 'phpinfo();'


运行上述命令在输出中找到 redis,看到为 5.0.1 版本



解决方法:将 delete($key) 改成 del($key) 的操作即可

附:被弃用的方法名的解决

被弃用方法名 替代方法名

delete del

zUnion zunionstore

zInter zinterstore

zDeleteRangeByRank zRemRangeByRank

zDeleteRangeByScore zRemRangeByScore

zDelete zRem

setTimeout expire

sContains sismember

sRemove srem

sSize scard

lGetRange lrange

lGet lindex

listTrim ltrim

lRemove lrem

lSize lLen

getKeys keys

getMultiple mget

renameKey rename

参考:

https://www.drupal.org/project/redis/issues/3068810 this is caused by the update to php-redis 5, apparently only in the PHP 7.3 images. 这是由于更新至 php-redis 5 版本后所造成的,很明显只会在 PHP 7.3 出现

https://github.com/phpredis/phpredis/pull/1588 all aliases are deprecated & delete is an alias for del 所有的别名被弃用 & delete 之前是作为 del 的别名

https://pecl.php.net/package-changelog.php?package=redis&release=5.0.0 Soft deprecate methods that aren't actually Redis commands [a81b4f2d, 95c8aab9] 被弃用的方法实际上并不是 Redis 本身自带的命令

https://github.com/phpredis/phpredis/pull/1572



鼎云博客
  • 最新评论
  • 总共0条评论