public function getList( array $keys )
	{
		$list = array();
		$conn = $this->_dbm->acquire( $this->_dbname );

		try
		{
			$search = new MW_Common_Criteria_SQL( $conn );
			$expires = array(
				$search->compare( '>', 'cache.expire', date( 'Y-m-d H:i:00' ) ),
				$search->compare( '==', 'cache.expire', null ),
			);
			$expr = array(
				$search->compare( '==', 'cache.id', $keys ),
				$search->combine( '||', $expires ),
			);
			$search->setConditions( $search->combine( '&&', $expr ) );

			$types = $this->_getSearchTypes( $this->_searchConfig );
			$translations = $this->_getSearchTranslations( $this->_searchConfig );
			$conditions = $search->getConditionString( $types, $translations );

			$stmt = $conn->create( str_replace( ':cond', $conditions, $this->_sql['get'] ) );
			$stmt->bind( 1, $this->_siteid, MW_DB_Statement_Abstract::PARAM_INT );
			$result = $stmt->execute();

			while( ( $row = $result->fetch() ) !== false ) {
				$list[ $row['id'] ] = $row['value'];
			}

			$this->_dbm->release( $conn, $this->_dbname );
		}
		catch( Exception $e )
		{
			$this->_dbm->release( $conn, $this->_dbname );
			throw $e;
		}

		return $list;
	}