コード例 #1
0
ファイル: RedisCache.php プロジェクト: rynslmns/RedisLayer
 /**
  * Looks up pickup details in cache.
  *
  * Performance: O(1) time complexity (constant time)
  *
  * @param $shipmentID
  * @return bool|PickupRequest returns false if pickup request doesn't exist in the cache,
  *                              otherwise it returns a PickupRequest model instance containing request details
  */
 public function lookupPickupRequest($shipmentID)
 {
     $shipmentID = intval($shipmentID);
     if (!is_int($shipmentID)) {
         throw new InvalidArgumentException("lookupPickupRequest expects shipment id to be an integer. Input was: {$shipmentID}");
     }
     if (!$this->client->exists(self::pickupRequestPath($shipmentID))) {
         return false;
     }
     //O(1) time complexity
     $values = $this->client->hmget(self::pickupRequestPath($shipmentID), PickupRequest::$PICKUP_REQUEST_ATTRIBUTE_KEYS);
     return PickupRequest::fromValues($shipmentID, $values);
 }