Take a pattern expected by the redis `scan` command and iter on all matching keys

        Parameters
        ----------
        match: str
            The pattern of keys to look for
        count: int, default to None (redis uses 10)
            Hint for redis about the number of expected result

        Yields
        -------
        str
            All keys found by the scan, one by one. A key can be returned multiple times, it's
            related to the way the SCAN command works in redis.

def scan_keys(self, match=None, count=None):
        """Take a pattern expected by the redis `scan` command and iter on all matching keys

        Parameters
        ----------
        match: str
            The pattern of keys to look for
        count: int, default to None (redis uses 10)
            Hint for redis about the number of expected result

        Yields
        -------
        str
            All keys found by the scan, one by one. A key can be returned multiple times, it's
            related to the way the SCAN command works in redis.

        """
        cursor = 0
        while True:
            cursor, keys = self.connection.scan(cursor, match=match, count=count)
            for key in keys:
                yield key
            if not cursor or cursor == '0':  # string for redis.py < 2.10
                break