def reverse(self):
        """ In place reverses the list. Very expensive on large data sets.
            The reversed list will be persisted to the redis :prop:_client
            as well.
        """
        tmp_list = RedisList(
            randint(0, 100000000), prefix=self.key_prefix,
            client=self._client, serializer=self.serializer,
            serialized=self.serialized)
        cursor = '0'
        count = 1000
        start = (-1 * count)
        stop = -1
        _loads = self._loads
        while cursor:
            cursor = self._client.lrange(self.key_prefix, start, stop)
            if cursor:
                tmp_list.extend(map(_loads, reversed(cursor)))
            start -= count
            stop -= count
        self._client.rename(tmp_list.key_prefix, self.key_prefix)
        tmp_list.clear()