toArray()); Yii::$app->redis->setex(RedisKeyUtil::userInfoByUserID($this->userID), 3600 * 24, $jsonStr); Yii::$app->redis->setex(RedisKeyUtil::userInfoByUsername($this->username), 3600 * 24, $this->userID); Yii::$app->redis->setex(RedisKeyUtil::userInfoByToken($this->token), 3600 * 24, $jsonStr); if (!empty($this->fd)) Yii::$app->redis->setex(RedisKeyUtil::userInfoByFD($this->fd), 3600 * 24, $this->userID); } public function delete() { Yii::$app->redis->del(RedisKeyUtil::userInfoByUserID($this->userID)); Yii::$app->redis->del(RedisKeyUtil::userInfoByUsername($this->username)); Yii::$app->redis->del(RedisKeyUtil::userInfoByToken($this->token)); Yii::$app->redis->del(RedisKeyUtil::userInfoByFD($this->fd)); } /** * @param $jsonStr * @return UserInfo|null */ public static function loadByJson($jsonStr) { $data = json_decode($jsonStr, true); if (empty($data)) return null; $userInfo = new UserInfo(); $userInfo->setAttributes($data, false); if (empty($userInfo->userID)) return null; return $userInfo; } public static function loadByUserID($userID) { if (empty($userID)) return null; $jsonStr = Yii::$app->redis->get(RedisKeyUtil::userInfoByUserID($userID)); return self::loadByJson($jsonStr); } public static function loadByToken($token) { $jsonStr = Yii::$app->redis->get(RedisKeyUtil::userInfoByToken($token)); if (empty($jsonStr)) return null; $userInfo = self::loadByJson($jsonStr); if (!empty($userInfo)) return $userInfo; return self::loadByUserID($jsonStr); } public static function loadByUsername($username) { $userID = Yii::$app->redis->get(RedisKeyUtil::userInfoByUsername($username)); return self::loadByUserID($userID); } public static function loadByFd($fd) { $userID = Yii::$app->redis->get(RedisKeyUtil::userInfoByFD($fd)); return self::loadByUserID($userID); } }