测试环境使用的是redis-cli 3.2.5,线上环境用的是redis-cli 3.2.8。但这个问题和这个版本应该没有关系。本文地址:http://www.04007.cn/article/497.html,未经许可,不得转载.
并不是第一次遇到,之前也遇到了,但是没查出问题,记得上次排查的情况特别怪,基本到了根本无法理解不可理喻的逻辑,忘了写下日志,今天又因需要再次使用hgetall.又碰到了。问题很简单,php连接redis后需要执行hgetall操作的命令都挂掉,特别是在执行hgetall之后要再次执行hgetall的话,那肯定就挂,php就直接502,所有的日志里都没有记录错误信息。目前不确定是什么原因吧,因为之前也排查过未找到原因,今天就没再去整了。写了一方法替换hgetall方法。本文地址:http://www.04007.cn/article/497.html,未经许可,不得转载.
#hgetall的替换方法 public function hgetallnew($key) { $redis = $this->_conn($key); $keys = $redis->hkeys($key); $data = array(); if(!$keys) return $data; $keys = array_values($keys); $data = $redis->hmget($h, $keys); return $data?$data:array(); }留个日记。本文地址:http://www.04007.cn/article/497.html,未经许可,不得转载.
本文地址:http://www.04007.cn/article/497.html 未经许可,不得转载. 手机访问本页请扫描下方二维码:
|