/
db_management.go
88 lines (66 loc) · 1.62 KB
/
db_management.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
package db_management
import (
"fmt"
"fmt"
"net/http"
"os"
"os/exec"
"net"
"gorm.io/driver/mysql"
"gorm.io/gorm"
)
func init_mysql(){
}
func init_redis(){
}
func op() {
dsn := "/path/to/mysql.sock" // 请替换为实际的 MySQL 套接字路径
db, err := gorm.Open(mysql.New(mysql.Config{
DriverName: "mysql",
DSN: "unix(" + dsn + ")/dbname?charset=utf8mb4&parseTime=True&loc=Local",
}), &gorm.Config{})
if err != nil {
fmt.Println("Error connecting to MySQL:", err)
return
}
defer db.Close()
conn, err := net.Dial("unix", "/tmp/example.sock")
if err != nil {
fmt.Println("Error connecting:", err)
return
}
defer conn.Close()
fmt.Println("Client connected to /tmp/example.sock")
client := redis.NewClient(&redis.Options{
Network: "unix",
Addr: "/path/to/your/redis.sock",
})
pong, err := client.Ping().Result()
fmt.Println(pong, err)
dsn := "user:password@tcp(127.0.0.1:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local"
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
if err != nil {
panic("Failed to connect to database")
}
// 迁移数据库表
db.AutoMigrate(&User{})
// 操作关系型数据库
user := User{Name: "John", Email: "john@example.com"}
db.Create(&user)
fmt.Println("User created:", user)
// 连接到 Redis
rdb := redis.NewClient(&redis.Options{
Addr: "localhost:6379",
DB: 0,
})
// 操作 Redis
err = rdb.Set("key", "value", 0).Err()
if err != nil {
panic("Failed to set key in Redis")
}
val, err := rdb.Get("key").Result()
if err != nil {
panic("Failed to get key from Redis")
}
fmt.Println("Value from Redis:", val)
}