<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 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