44 lines
1.2 KiB
Go
44 lines
1.2 KiB
Go
package main
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"github.com/redis/go-redis/v9"
|
|
)
|
|
|
|
// Task: Update the score and the challenges_completed
|
|
// for team Snarkdumbthimble that has finished challenge #1.
|
|
|
|
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
|
|
}
|