def change_score_for_member_in(self, leaderboard_name, member, delta, member_data=None):
previous_score = self.score_for(member)<EOL>new_score = (previous_score or <NUM_LIT:0>) + delta<EOL>total_members_at_previous_score = []<EOL>if previous_score is not None:<EOL><INDENT>total_members_at_previous_score = self.redis_connection.zrevrangebyscore(leaderboard_name, previous_score, previous_score)<EOL><DEDENT>pipeline = self.redis_connection.pipeline()<EOL>if isinstance(self.redis_connection, Redis):<EOL><INDENT>pipeline.zadd(leaderboard_name, member, new_score)<EOL>pipeline.zadd(self._ties_leaderboard_key(leaderboard_name), str(float(new_score)), new_score)<EOL><DEDENT>else:<EOL><INDENT>pipeline.zadd(leaderboard_name, new_score, member)<EOL>pipeline.zadd(self._ties_leaderboard_key(leaderboard_name), new_score, str(float(new_score)))<EOL><DEDENT>if member_data:<EOL><INDENT>pipeline.hset(<EOL>self._member_data_key(leaderboard_name),<EOL>member,<EOL>member_data)<EOL><DEDENT>pipeline.execute()<EOL>if len(total_members_at_previous_score) == <NUM_LIT:1>:<EOL><INDENT>self.redis_connection.zrem(self._ties_leaderboard_key(leaderboard_name), str(float(previous_score)))<EOL><DEDENT>
Change the score for a member in the named leaderboard by a delta which can be positive or negative.

@param leaderboard_name [String] Name of the leaderboard.
@param member [String] Member name.
@param delta [float] Score change.
@param member_data [String] Optional member data.