Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah golang menyimpan data? Analisis ringkas dua kaedah penyimpanan data

Bagaimanakah golang menyimpan data? Analisis ringkas dua kaedah penyimpanan data

PHPz
PHPzasal
2023-04-11 10:39:471420semak imbas

Golang ialah bahasa bahagian belakang yang sangat popular dalam dunia pembangunan perisian hari ini. Bagi mereka yang baru mengenali Golang, cara data disimpan mungkin menjadi isu yang rumit. Artikel ini akan memperkenalkan kaedah penyimpanan data di Golang.

Pengenalan

Golang menggunakan dua kaedah utama untuk penyimpanan data: pangkalan data dan sistem fail. Dalam artikel ini, kita akan membincangkan dua kaedah penyimpanan yang digunakan di Golang terutamanya untuk pangkalan data dan sistem fail.

Storan Pangkalan Data

Dalam pembangunan perisian, adalah perkara biasa untuk menggunakan pangkalan data untuk penyimpanan data. Golang juga menyediakan beberapa kaedah penyimpanan pangkalan data biasa, seperti yang diterangkan di bawah:

Pangkalan data SQL

Pangkalan data SQL ialah kaedah penyimpanan pangkalan data biasa, yang boleh menggunakan pangkalan data/ dalam pakej sql perpustakaan standard Golang untuk menyambung dan beroperasi. Apabila menggunakan sambungan pangkalan data yang dibuat oleh pakej pangkalan data/sql, anda perlu menentukan pemacu pangkalan data untuk digunakan. Di Golang, beberapa pemacu pangkalan data SQL yang popular termasuk:

  • MySQL
  • PostgreSQL
  • SQLite
  • Oracle

Berikut ialah contoh mudah menggunakan pakej pangkalan data/sql untuk menyambung ke pangkalan data MySQL:

import (
    "database/sql"
    _ "github.com/go-sql-driver/mysql"
    "fmt"
)

func main() {
    db, err := sql.Open("mysql", "user:password@/dbname")
    if err != nil {
        panic(err.Error())
    }
    defer db.Close()

    rows, err := db.Query("SELECT * FROM users")
    if err != nil {
        panic(err.Error())
    }

    for rows.Next() {
        var name string
        var email string
        err = rows.Scan(&name, &email)
        if err != nil {
            panic(err.Error())
        }
        fmt.Println(name, email)
    }
}

Pangkalan data NoSQL

Pangkalan data NoSQL juga merupakan kaedah penyimpanan pangkalan data biasa, yang lebih sesuai untuk Penyimpanan data tidak berstruktur. Di Golang, kaedah penyimpanan pangkalan data NoSQL yang digunakan biasanya MongoDB. Pemacu Golang untuk MongoDB ialah mgo Anda boleh menyemak cara menggunakan pemacu Golang melalui dokumentasi perpustakaan.

Storan sistem fail

Selain menggunakan pangkalan data untuk menyimpan data, Golang juga boleh menyimpan data dalam sistem fail. Berikut ialah beberapa cara untuk menggunakan sistem fail untuk menyimpan data dalam Golang:

Storan Fail

Cara mudah untuk menyimpan data adalah dengan menyimpannya dalam fail. Di Golang, operasi fail boleh diselesaikan melalui fungsi yang disediakan dalam pakej os. Berikut ialah contoh mudah yang menunjukkan cara menulis data pada fail:

import (
    "fmt"
    "io/ioutil"
)

func main() {
    data := []byte("hello world\n")

    err := ioutil.WriteFile("file.txt", data, 0644)
    if err != nil {
        panic(err.Error())
    }

    contents, err := ioutil.ReadFile("file.txt")
    if err != nil {
        panic(err.Error())
    }

    fmt.Println(string(contents))
}

Storan JSON

Menyimpan data dalam format JSON juga merupakan kaedah storan yang popular. Di Golang, anda boleh mengekod data dengan mudah ke JSON atau menyahkod semula data daripada JSON menggunakan pakej pengekodan/json.

Berikut ialah contoh mudah yang menunjukkan cara mengekodkan struct Person ke dalam JSON dan kemudian menulisnya pada fail:

import (
    "encoding/json"
    "fmt"
    "io/ioutil"
)

type Person struct {
    Name string `json:"name"`
    Age  int    `json:"age"`
}

func main() {
    p := Person{Name: "John Doe", Age: 42}

    jsonBytes, err := json.Marshal(p)
    if err != nil {
        panic(err.Error())
    }

    err = ioutil.WriteFile("person.json", jsonBytes, 0644)
    if err != nil {
        panic(err.Error())
    }

    fileContents, err := ioutil.ReadFile("person.json")
    if err != nil {
        panic(err.Error())
    }

    var decodedPerson Person
    err = json.Unmarshal(fileContents, &decodedPerson)
    if err != nil {
        panic(err.Error())
    }

    fmt.Printf("%s is %d years old\n", decodedPerson.Name, decodedPerson.Age)
}

Kesimpulan

Dalam artikel ini, kami membincangkan dua cara utama untuk menyimpan data di Golang: pangkalan data dan sistem fail. Jika anda ingin menggunakan pangkalan data untuk menyimpan data dalam Golang, anda boleh menggunakan pangkalan data SQL tradisional atau pangkalan data NoSQL. Dan jika anda ingin menyimpan data dalam sistem fail, anda boleh menggunakan kaedah penyimpanan fail yang disediakan di Golang, atau mengekod data ke dalam format JSON dan menyimpannya dalam fail. Sudah tentu, berikut adalah beberapa kaedah penyimpanan data yang biasa digunakan di Golang Dalam pembangunan sebenar, anda boleh menggunakan lebih banyak kaedah penyimpanan data lain.

Atas ialah kandungan terperinci Bagaimanakah golang menyimpan data? Analisis ringkas dua kaedah penyimpanan data. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn