code: def zkeys(self, name, key_start, score_start, score_end, limit=10):
                          
          score_start = get_integer_or_emptystring('score_start', score_start)
          score_end = get_integer_or_emptystring('score_end', score_end)        
          limit = get_positive_integer('limit', limit)
          return self.execute_command('zkeys', name, key_start, score_start,
                                      score_end, limit)
docs: Return a list of the top ``limit`` keys after ``key_start`` from zset
          ``name`` with scores between ``score_start`` and ``score_end`` 
  
          .. note:: The range is (``key_start``+``score_start``, ``key_end``]. That
             means (key.score == score_start && key > key_start || key.score >
             score_start)
  
          :param string name: the zset name
          :param string key_start: The lower bound(not included) of keys to be
           returned, empty string ``''`` means -inf
          :param string key_end: The upper bound(included) of keys to be
           returned, empty string ``''`` means +inf
          :param int limit: number of elements will be returned.
          :return: a list of keys
          :rtype: list
  
          >>> ssdb.zkeys('zset_1', '', 0, 200, 10)
          ['g', 'd', 'b', 'a', 'e', 'c']
          >>> ssdb.zkeys('zset_1', '', 0, 200, 3)
          ['g', 'd', 'b']
          >>> ssdb.zkeys('zset_1', 'b', 20, 200, 3)
          ['a', 'e', 'c']
          >>> ssdb.zkeys('zset_1', 'c', 100, 200, 3)
          []