recherche
Maisondéveloppement back-endGolangApprenez 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 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
Golang vs C: Exemples de code et analyse des performancesGolang vs C: Exemples de code et analyse des performancesApr 15, 2025 am 12:03 AM

Golang convient au développement rapide et à la programmation simultanée, tandis que C est plus adapté aux projets qui nécessitent des performances extrêmes et un contrôle sous-jacent. 1) Le modèle de concurrence de Golang simplifie la programmation de concurrence via le goroutine et le canal. 2) La programmation du modèle C fournit un code générique et une optimisation des performances. 3) La collecte des ordures de Golang est pratique mais peut affecter les performances. La gestion de la mémoire de C est complexe mais le contrôle est bien.

Impact de Golang: vitesse, efficacité et simplicitéImpact de Golang: vitesse, efficacité et simplicitéApr 14, 2025 am 12:11 AM

GOIMIMPACTSDEVENCEMENTSPOSITIVEMENTS INSPECT, EFFICACTION ET APPLICATION.1) VITESSE: GOCOMPILESQUICKLYANDRUNSEFFIÉMENT, IDEALFORLARGEPROROSTS.2) Efficacité: ITSCOMPEHENSIVESTANDARDLIBRARYREDUCEEXTERNEDENDENCES, EnhancingDevelovefficiency.3) Simplicité: Simplicité: Implicité de la manière

C et Golang: Lorsque les performances sont crucialesC et Golang: Lorsque les performances sont crucialesApr 13, 2025 am 12:11 AM

C est plus adapté aux scénarios où le contrôle direct des ressources matérielles et une optimisation élevée de performances sont nécessaires, tandis que Golang est plus adapté aux scénarios où un développement rapide et un traitement de concurrence élevé sont nécessaires. 1.C's Avantage est dans ses caractéristiques matérielles proches et à des capacités d'optimisation élevées, qui conviennent aux besoins de haute performance tels que le développement de jeux. 2. L'avantage de Golang réside dans sa syntaxe concise et son soutien à la concurrence naturelle, qui convient au développement élevé de services de concurrence.

Golang en action: Exemples et applications du monde réelGolang en action: Exemples et applications du monde réelApr 12, 2025 am 12:11 AM

Golang excelle dans les applications pratiques et est connu pour sa simplicité, son efficacité et sa concurrence. 1) La programmation simultanée est implémentée via des goroutines et des canaux, 2) le code flexible est écrit à l'aide d'interfaces et de polymorphismes, 3) Simplifier la programmation réseau avec des packages Net / HTTP, 4) Construire des robots concurrents efficaces, 5) Déboggage et optimisation par le biais d'outils et de meilleures pratiques.

Golang: le langage de programmation Go expliquéGolang: le langage de programmation Go expliquéApr 10, 2025 am 11:18 AM

Les caractéristiques principales de GO incluent la collection de déchets, la liaison statique et le support de concurrence. 1. Le modèle de concurrence du langage GO réalise une programmation concurrente efficace via le goroutine et le canal. 2. Les interfaces et les polymorphismes sont implémentés via des méthodes d'interface, de sorte que différents types peuvent être traités de manière unifiée. 3. L'utilisation de base démontre l'efficacité de la définition et de l'appel des fonctions. 4. Dans une utilisation avancée, les tranches offrent des fonctions puissantes de redimensionnement dynamique. 5. Des erreurs courantes telles que les conditions de course peuvent être détectées et résolues par l'imagerie. 6. Optimisation des performances Réutiliser les objets via Sync.Pool pour réduire la pression de collecte des ordures.

Objectif de Golang: Construire des systèmes efficaces et évolutifsObjectif de Golang: Construire des systèmes efficaces et évolutifsApr 09, 2025 pm 05:17 PM

GO Language fonctionne bien dans la construction de systèmes efficaces et évolutifs. Ses avantages incluent: 1. Haute performance: compilé en code machine, vitesse de course rapide; 2. Programmation simultanée: simplifier le multitâche via les goroutines et les canaux; 3. Simplicité: syntaxe concise, réduction des coûts d'apprentissage et de maintenance; 4. Plate-forme multipliée: prend en charge la compilation multiplateforme, déploiement facile.

Pourquoi les résultats d'ordre par des déclarations dans le tri SQL semblent-ils parfois aléatoires?Pourquoi les résultats d'ordre par des déclarations dans le tri SQL semblent-ils parfois aléatoires?Apr 02, 2025 pm 05:24 PM

Confus quant au tri des résultats de la requête SQL. Dans le processus d'apprentissage de SQL, vous rencontrez souvent des problèmes déroutants. Récemment, l'auteur lit "Mick-SQL Basics" ...

La convergence de la pile technologique est-elle juste un processus de sélection de la pile technologique?La convergence de la pile technologique est-elle juste un processus de sélection de la pile technologique?Apr 02, 2025 pm 05:21 PM

La relation entre la convergence des piles technologiques et la sélection de la technologie dans le développement de logiciels, la sélection et la gestion des piles technologiques sont un problème très critique. Récemment, certains lecteurs ont proposé ...

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌

Outils chauds

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Télécharger la version Mac de l'éditeur Atom

Télécharger la version Mac de l'éditeur Atom

L'éditeur open source le plus populaire

VSCode Windows 64 bits Télécharger

VSCode Windows 64 bits Télécharger

Un éditeur IDE gratuit et puissant lancé par Microsoft

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

DVWA

DVWA

Damn Vulnerable Web App (DVWA) est une application Web PHP/MySQL très vulnérable. Ses principaux objectifs sont d'aider les professionnels de la sécurité à tester leurs compétences et leurs outils dans un environnement juridique, d'aider les développeurs Web à mieux comprendre le processus de sécurisation des applications Web et d'aider les enseignants/étudiants à enseigner/apprendre dans un environnement de classe. Application Web sécurité. L'objectif de DVWA est de mettre en pratique certaines des vulnérabilités Web les plus courantes via une interface simple et directe, avec différents degrés de difficulté. Veuillez noter que ce logiciel