Maison >développement back-end >Golang >Apprenez les fonctions de base de données en langage Go et implémentez les opérations de lecture et d'écriture dans le cluster Redis

Apprenez les fonctions de base de données en langage Go et implémentez les opérations de lecture et d'écriture dans le cluster Redis

WBOY
WBOYoriginal
2023-07-29 12:21:101604parcourir

Apprenez les fonctions de base de données dans le langage Go et implémentez des opérations de lecture et d'écriture dans le cluster Redis

Introduction :
La base de données est un élément indispensable des applications Internet d'aujourd'hui, et le langage Go, en tant que langage de programmation simple et efficace, possède également de bonnes capacités d'exploitation de base de données . Cet article expliquera comment utiliser les fonctions de base de données en langage Go et implémenter les opérations de lecture et d'écriture dans le cluster Redis.

1. Fonctions de base de données en langage Go
Les opérations de base de données en langage Go sont principalement implémentées via le package base de données/sql. Ce package fournit des fonctions de base d'exploitation de base de données, notamment la connexion à la base de données, l'exécution d'instructions SQL, le traitement des jeux de résultats, etc.

  1. Connectez-vous à la base de données
    En langage Go, nous pouvons nous connecter à la base de données via la fonction Open du package database/sql. Cette fonction accepte deux paramètres : le nom du pilote de la base de données et les informations de connexion de la base de données, par exemple :

    import "database/sql"
    import _ "github.com/go-sql-driver/mysql"
    
    db, err := sql.Open("mysql", "root:password@tcp(127.0.0.1:3306)/database")
    if err != nil {
     log.Fatal(err)
    }
    defer db.Close()

    Dans le code ci-dessus, nous utilisons le pilote mysql pour nous connecter à la base de données MySQL locale. Le nom d'utilisateur est root, le mot de passe est mot de passe et le nom de la base de données est base de données.

  2. Exécuter des instructions SQL
    Après la connexion à la base de données, nous pouvons exécuter des instructions SQL via des fonctions telles que db.Exec ou db.Query. La fonction Exec est utilisée pour exécuter des instructions SQL qui ne renvoient pas de jeu de résultats, telles que l'insertion, la mise à jour, la suppression, etc. ; la fonction Query est utilisée pour exécuter des instructions SQL qui renvoient un jeu de résultats, telles que des opérations de requête. Un exemple est le suivant :

    stmt, err := db.Prepare("INSERT INTO users(email, password) VALUES(?, ?)")
    if err != nil {
     log.Fatal(err)
    }
    defer stmt.Close()
    
    result, err := stmt.Exec("test@example.com", "password123")
    if err != nil {
     log.Fatal(err)
    }
    
    lastInsertID, err := result.LastInsertId()
    if err != nil {
     log.Fatal(err)
    }
    fmt.Println(lastInsertID)

    Dans le code ci-dessus, nous utilisons la fonction Prepare pour précompiler une instruction d'insertion et lier les paramètres à ?, puis exécutons l'instruction d'insertion via la fonction Exec, et le résultat de retour est stocké dans le variable de résultat. L'ID d'auto-incrémentation des données insérées peut être obtenu via result.LastInsertId().

  3. Traitement des ensembles de résultats
    Lors de l'exécution d'une instruction SQL qui renvoie un ensemble de résultats, nous pouvons utiliser la fonction Rows pour obtenir les résultats de la requête. Ensuite, chaque élément de données est traité en parcourant l'ensemble de résultats. L'exemple est le suivant :

    rows, err := db.Query("SELECT id, email FROM users")
    if err != nil {
     log.Fatal(err)
    }
    defer rows.Close()
    
    for rows.Next() {
     var id int
     var email string
     err := rows.Scan(&id, &email)
     if err != nil {
         log.Fatal(err)
     }
     fmt.Println(id, email)
    }

    Dans le code ci-dessus, nous avons exécuté une instruction de requête via la fonction db.Query et stocké le résultat dans la variable rows. Parcourez ensuite chaque élément de données via rows.Next et enregistrez les données dans la variable correspondante via rows.Scan.

2. Implémenter les opérations de lecture et d'écriture dans le cluster Redis
Redis est une base de données de stockage clé-valeur hautes performances qui peut être exploitée en langage Go via le package go-redis/redis. Nous utiliserons ensuite ce package pour implémenter les opérations de lecture et d'écriture dans le cluster Redis.

  1. Connexion au cluster Redis
    En langage Go, on peut se connecter au cluster Redis via la fonction redis.NewClusterClient. Un exemple est le suivant :

    import "github.com/go-redis/redis/v8"
    
    cluster := redis.NewClusterClient(&redis.ClusterOptions{
     Addrs: []string{"node1:6379", "node2:6379", "node3:6379"},
    })
    defer cluster.Close()

    Dans le code ci-dessus, nous avons créé un objet redis.ClusterClient et spécifié l'adresse du nœud du cluster Redis via le paramètre ClusterOptions.

  2. Écrire des données sur le cluster Redis
    Après la connexion au cluster Redis, nous pouvons utiliser la fonction Set pour écrire des données sur le cluster. Un exemple est le suivant :

    err := cluster.Set(context.Background(), "key", "value", 0).Err()
    if err != nil {
     log.Fatal(err)
    }

    Dans le code ci-dessus, nous écrivons un élément de données clé-valeur dans le cluster Redis via la fonction cluster.Set Le délai d'expiration est de 0, ce qui signifie qu'il n'expirera jamais.

  3. Lecture des données du cluster Redis
    Après la connexion au cluster Redis, nous pouvons utiliser la fonction Get pour lire les données du cluster. Un exemple est le suivant :

    val, err := cluster.Get(context.Background(), "key").Result()
    if err != nil {
     log.Fatal(err)
    }
    fmt.Println(val)

    Dans le code ci-dessus, nous lisons la valeur correspondant à la clé du cluster Redis via la fonction cluster.Get et l'imprimons.

Résumé :
Cet article présente les fonctions de base de données dans l'apprentissage du langage Go et implémente les opérations de lecture et d'écriture du cluster Redis. Grâce aux fonctions de base de données, nous pouvons facilement nous connecter à la base de données, exécuter des instructions SQL et traiter des ensembles de résultats. Grâce au package go-redis/redis, nous pouvons facilement interagir avec le cluster Redis pour réaliser des opérations de stockage et de lecture efficaces. J'espère que cet article pourra aider les lecteurs à mieux comprendre les fonctions de base de données en langage Go et à les appliquer à des projets réels.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn