Function Redis::delete() is deprecated解决方法

“Function Redis::delete() is deprecated”从字面理解就是Redis缓存的delete()函数被弃用了。这个问题一般只出现在新版本的php-redis插件中,旧版本不影响。

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

如果在此之前你采用的是TP5框架或者使用波波开源项目tp-admin的,可以直接修改/thinkphp/library/cache/driver/redis.php第156行。

  1. /**
  2.      * 删除缓存
  3.      * @access public
  4.      * @param string $name 缓存变量名
  5.      * @return boolean
  6.      */
  7.     public function rm($name)
  8.     {
  9.         //return $this->handler->delete($this->getCacheKey($name));
  10.         return $this->handler->del($this->getCacheKey($name));
  11.     }
  12.     /**
  13.      * 清除缓存
  14.      * @access public
  15.      * @param string $tag 标签名
  16.      * @return boolean
  17.      */
  18.     public function clear($tag = null)
  19.     {
  20.         if ($tag) {
  21.             // 指定标签清除
  22.             $keys = $this->getTagItem($tag);
  23.             foreach ($keys as $key) {
  24.                 //$this->handler->delete($key);
  25.                 $this->handler->del($key);
  26.             }
  27.             $this->rm('tag_' . md5($tag));
  28.             return true;
  29.         }
  30.         return $this->handler->flushDB();
  31.     }

拓展:被弃用的其他函数及替代函数。

 

你想把广告放到这里吗?

发表评论

您必须 登录 才能发表留言!