[ GO语言基础语法 | 青训营笔记 ]3

60 阅读2分钟
  1. 文件存储

文件存储是最常见的存储方式之一,适合于存储少量数据和简单的数据结构。在Go语言中,我们可以使用os包和io包来进行文件操作。例如,我们可以使用os.Create()函数来创建一个新文件,使用os.Open()函数来打开一个已有的文件,并使用io/ioutil包的ReadFile()函数来读取文件的内容等。

示例代码:

GO
package main

import (
	"io/ioutil"
	"log"
	"os"
)

func main() {
	data := []byte("Hello, World!\n")
	fileName := "test.txt"

	// 创建一个新文件并写入内容
	err1 := ioutil.WriteFile(fileName, data, 0644)
	if err1 != nil {
		log.Fatal(err1)
	}

	// 打开一个已有的文件并读取内容
	content, err2 := ioutil.ReadFile(fileName)
	if err2 != nil {
		log.Fatal(err2)
	}
	log.Printf("File content: %s", content)

	// 删除文件
	err3 := os.Remove(fileName)
	if err3 != nil {
		log.Fatal(err3)
	}
}
  1. 内存存储

内存存储通常用于缓存数据,以提高数据访问的速度。在Go语言中,我们可以使用内置的map数据结构来实现内存存储。

示例代码:

GO
package main

import "fmt"

func main() {
	// 创建一个map并存储数据
	m := make(map[string]int)
	m["a"] = 1
	m["b"] = 2
	m["c"] = 3

	// 读取map中的数据
	fmt.Println(m["a"])

	// 删除map中的数据
	delete(m, "b")
	fmt.Println(m)
}
  1. 缓存存储

缓存存储通常用于存储经常被访问的数据,以减轻数据库负担。
在Go语言中,我们可以使用第三方的缓存库来实现缓存存储,例如:go-cache、redigo等。

二、数据库

  1. 主流数据库

主流的关系型数据库有MySQL、Oracle、SQL Server等,而主流的非关系型数据库则有MongoDB、Redis、Cassandra等。此外,也有一些新兴的数据库产品,如TiDB、CockroachDB等。

  1. 数据库的操作
    在Go语言中,我们可以使用database/sql包来进行数据库操作。此外,我们还需要引入一个对应数据库驱动的包,如mysql、postgres等。以下是一个MySQL数据库的操作示例。

示例代码:

GO
package main

import (
	"database/sql"
	"log"

	_ "github.com/go-sql-driver/mysql" // MySQL驱动包
)

func main() {
	// 打开数据库连接
	db, err := sql.Open("mysql", "user:password@tcp(127.0.0.1:3306)/test")
	if err != nil {
		log.Fatal(err)
	}
	defer db.Close()

	// 执行查询
	rows, err := db.Query("SELECT id, name FROM users")
	if err != nil {
		log.Fatal(err)
	}
	defer rows.Close()

	// 遍历查询结果
	for rows.Next() {
		var id int
		var name string
		err := rows.Scan(&id, &name)
		if err != nil {
			log.Fatal(err)
		}
		log.Printf("id=%d, name=%s", id, name)
	}

	// 插入数据
	result, err := db.Exec("INSERT INTO users (name) VALUES (?)", "Bob")
	if err != nil {
		log.Fatal(err)
	}
	lastInsertID, _ := result.LastInsertId()
	log.Printf("Last insert ID: %d", lastInsertID)
}

以上是关于Go语言认识存储与数据库的学习笔记。通过对存储和数据库的学习,我们可以选择适合自己的存储方式和数据库产品,并掌握相应的库或驱动的使用方法。同时,使用基于Go语言的存储和数据库方案能够提高应用的性能和稳定性。