func pipeline()

in get-started-with-redis/pipeline.go [12:43]


func pipeline(client *redis.Client) error {
	ctx := context.Background()

	_, err := client.Pipelined(ctx, func(pipe redis.Pipeliner) error {
		err := pipe.HSet(ctx, "player:7", "score", 15, "challenges_completed", 1).Err()
		if err != nil {
			return err
		}
		err = pipe.HSet(ctx, "player:8", "score", 18, "challenges_completed", 1).Err()
		if err != nil {
			return err
		}
		err = pipe.HSet(ctx, "player:9", "score", 12, "challenges_completed", 1).Err()

		return err
	})
	if err != nil {
		return fmt.Errorf("pipelined failed: %w", err)
	}

	fmt.Printf("Player 7's score: %s, challenges completed: %s\n",
		client.HGet(ctx, "player:7", "score").Val(),
		client.HGet(ctx, "player:7", "challenges_completed").Val())
	fmt.Printf("Player 8's score: %s, challenges completed: %s\n",
		client.HGet(ctx, "player:8", "score").Val(),
		client.HGet(ctx, "player:8", "challenges_completed").Val())
	fmt.Printf("Player 9's score: %s, challenges completed: %s\n",
		client.HGet(ctx, "player:9", "score").Val(),
		client.HGet(ctx, "player:9", "challenges_completed").Val())

	return nil
}