Return a dict mapping key/value in the top ``limit`` keys between
        ``key_start`` and ``key_end`` within hash ``name`` in descending order

        .. note:: The range is (``key_start``, ``key_end``]. The ``key_start``
           isn't in the range, but ``key_end`` is.

        :param string name: the hash name
        :param string key_start: The upper bound(not included) of keys to be
         returned, empty string ``''`` means +inf
        :param string key_end: The lower bound(included) of keys to be
         returned, empty string ``''`` means -inf
        :param int limit: number of elements will be returned.
        :return: a dict mapping key/value in descending order
        :rtype: OrderedDict
        
        >>> ssdb.hrscan('hash_1', 'g', 'a', 10)
        {'f': 'F', 'e': 'E', 'd': 'D', 'c': 'C', 'b': 'B', 'a': 'A'}
        >>> ssdb.hrscan('hash_2', 'key7', 'key1', 3)
        {'key6': 'log', 'key5': 'e', 'key4': '256'}
        >>> ssdb.hrscan('hash_1', 'c', '', 10)
        {'b': 'B', 'a': 'A'}
        >>> ssdb.hscan('hash_2', 'keys', '', 10)
        {}

def hrscan(self, name, key_start, key_end, limit=10):
        """
        Return a dict mapping key/value in the top ``limit`` keys between
        ``key_start`` and ``key_end`` within hash ``name`` in descending order

        .. note:: The range is (``key_start``, ``key_end``]. The ``key_start``
           isn't in the range, but ``key_end`` is.

        :param string name: the hash name
        :param string key_start: The upper bound(not included) of keys to be
         returned, empty string ``''`` means +inf
        :param string key_end: The lower bound(included) of keys to be
         returned, empty string ``''`` means -inf
        :param int limit: number of elements will be returned.
        :return: a dict mapping key/value in descending order
        :rtype: OrderedDict
        
        >>> ssdb.hrscan('hash_1', 'g', 'a', 10)
        {'f': 'F', 'e': 'E', 'd': 'D', 'c': 'C', 'b': 'B', 'a': 'A'}
        >>> ssdb.hrscan('hash_2', 'key7', 'key1', 3)
        {'key6': 'log', 'key5': 'e', 'key4': '256'}
        >>> ssdb.hrscan('hash_1', 'c', '', 10)
        {'b': 'B', 'a': 'A'}
        >>> ssdb.hscan('hash_2', 'keys', '', 10)
        {}        
        """
        limit = get_positive_integer('limit', limit)        
        return self.execute_command('hrscan', name, key_start, key_end, limit)