Example #1
0
    def rpoplpush(self, destination):
        """ 在一个原子时间内,完成以下三件事:
        1.对self进行rpop,
        2.将弹出的元素返回客户端,
        3.将该元素副本lpush到destination。

        Args:
            destination: 另一个列表,或列表名字。

        Time:
            O(1)

        Returns:
            None: 当列表为空时返回。
            value: 当列表不为空时,返回被弹出的元素。

        Raises:
            TypeError: 尝试对非list类型的对象进行操作时抛出。
        """
        try:
            destination = get_key_name_from_single_value(destination)
            value = self._client.rpoplpush(self.name, destination)
            return self._type_case.to_python(value)
        except redispy_exception.ResponseError:
            raise TypeError
Example #2
0
    def rpoplpush(self, destination):
        """ 在一个原子时间内,完成以下三件事:
        1.对self进行rpop,
        2.将弹出的元素返回客户端,
        3.将该元素副本lpush到destination。

        Args:
            destination: 另一个列表,或列表名字。

        Time:
            O(1)

        Returns:
            None: 当列表为空时返回。
            value: 当列表不为空时,返回被弹出的元素。

        Raises:
            TypeError: 尝试对非list类型的对象进行操作时抛出。
        """
        try:
            destination = get_key_name_from_single_value(destination)
            value = self._client.rpoplpush(self.name, destination)
            return self._type_case.to_python(value)
        except redispy_exception.ResponseError:
            raise TypeError
Example #3
0
    def brpoplpush(self, destination, timeout=INDEFINITELY):
        """ rpoplpush的阻塞版本。
        接受一个timeout参数作为阻塞超时时间。

        Args:
            destination: 另一个列表,或列表名字。
            timeout: 阻塞等待时间,默认为0。

        Time:
            O(1)

        Returns:
            None: 当列表为空时返回。
            value: 当列表不为空时,返回被弹出的元素。

        Raises:
            TypeError: 尝试对非list类型的对象进行操作时抛出。
        """
        try:
            destination = get_key_name_from_single_value(destination)
            value = self._client.brpoplpush(self.name, destination, timeout)
            return self._type_case.to_python(value)
        except redispy_exception.ResponseError:
            raise TypeError
Example #4
0
    def brpoplpush(self, destination, timeout=INDEFINITELY):
        """ rpoplpush的阻塞版本。
        接受一个timeout参数作为阻塞超时时间。

        Args:
            destination: 另一个列表,或列表名字。
            timeout: 阻塞等待时间,默认为0。

        Time:
            O(1)

        Returns:
            None: 当列表为空时返回。
            value: 当列表不为空时,返回被弹出的元素。

        Raises:
            TypeError: 尝试对非list类型的对象进行操作时抛出。
        """
        try:
            destination = get_key_name_from_single_value(destination)
            value = self._client.brpoplpush(self.name, destination, timeout)
            return self._type_case.to_python(value)
        except redispy_exception.ResponseError:
            raise TypeError