Adds member/value pairs to the sorted set in two ways:

            To add with @args:
            ..
                pairs = [4.0, 'member1', 5.0, 'member2']
                sorted_set.add(*pairs)
                # sorted_set.add(4.0, 'member1', 5.0, 'member2')
            ..

            To add with @kwargs:
            ..
                pairs = {"member1": 4.0, "member2": 5.0}
                sorted_set.add(**pairs)
                # sorted_set.add(member1=4.0, member2=5.0)
            ..

def add(self, *args, **kwargs):
        """ Adds member/value pairs to the sorted set in two ways:

            To add with @args:
            ..
                pairs = [4.0, 'member1', 5.0, 'member2']
                sorted_set.add(*pairs)
                # sorted_set.add(4.0, 'member1', 5.0, 'member2')
            ..

            To add with @kwargs:
            ..
                pairs = {"member1": 4.0, "member2": 5.0}
                sorted_set.add(**pairs)
                # sorted_set.add(member1=4.0, member2=5.0)
            ..
        """
        if args or kwargs:
            _dumps = self._dumps
            zargs = list(args)
            if args and self.serialized:
                # args format: value, key, value, key...
                zargs = [
                    _dumps(x) if (i % 2 == 1 and self.serialized) else x
                    for i, x in enumerate(args)]
            if kwargs:
                # kwargs format: key=value, key=value
                zargs += [
                    _dumps(x) if (i % 2 == 1 and self.serialized) else x
                    for y in kwargs.items() for i, x in enumerate(reversed(y))]
            return self._client.zadd(self.key_prefix, *zargs)