<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def mget(self, args):
 """ mget wrapper that batches keys per shard and execute as few mgets as necessary to fetch the keys from all the shards involved. This method should be invoked on a TwemRedis instance as if it were being invoked directly on a StrictRedis instance. """

        key_map = collections.defaultdict(list)
        results = {}
        for key in args:
            shard_num = self.get_shard_num_by_key(key)
            key_map[shard_num].append(key)

        # TODO: parallelize
        for shard_num in key_map.keys():
            shard = self.get_shard_by_num(shard_num)
            results[shard_num] = shard.mget(key_map[shard_num])
        return results