code: def read(self, count=None, block=None, last_id=None):
          
          if last_id is None: last_id = '0-0'
          resp = self.database.xread({self.key: _decode(last_id)}, count, block)
  
              # resp is a 2-tuple of stream name -> message list.
          return resp[0][1] if resp else []
docs: Monitor stream for new data.
  
          :param int count: limit number of messages returned
          :param int block: milliseconds to block, 0 for indefinitely
          :param last_id: Last id read (an exclusive lower-bound). If the '$'
              value is given, we will only read values added *after* our command
              started blocking.
          :returns: a list of (message id, data) 2-tuples.