def rscan(self, name_start, name_end, limit=10):
        """
        Scan and return a dict mapping key/value in the top ``limit`` keys between
        ``name_start`` and ``name_end`` in descending order

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

        :param string name_start: The upper bound(not included) of keys to be
         returned, empty string ``''`` means +inf
        :param string name_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.scan('set_x3', 'set_x1', 10)
        {'set_x2': 'x2', 'set_x1': 'x1'}
        >>> ssdb.scan('set_xx', 'set_x ', 3)
        {'set_x4': 'x4', 'set_x3': 'x3', 'set_x2': 'x2'}
        >>> ssdb.scan('', 'set_x ', 10)
        {'set_x4': 'x4', 'set_x3': 'x3', 'set_x2': 'x2', 'set_x1': 'x1'}
        >>> ssdb.scan('', 'set_zzzzz', 10)
        {}
        """                
        limit = get_positive_integer('limit', limit)        
        return self.execute_command('rscan', name_start, name_end, limit)