Dengan kemunculan era data besar, saiz dan kerumitan data terus meningkat, dan keperluan pangkalan data menjadi sangat penting. Pada masa ini, Redis, sebagai pangkalan data NoSQL berprestasi tinggi, semakin menarik perhatian. Artikel ini akan memperkenalkan cara menggunakan pangkalan data Redis dalam bahasa Go.
1 Pengenalan kepada Redis
Redis ialah pangkalan data NoSQL berdasarkan storan nilai kunci Ia menyokong pelbagai struktur data, seperti rentetan, senarai, set, set tersusun dan jadual cincang. . Redis mempunyai prestasi tinggi dan ketersediaan tinggi, jadi ia boleh digunakan dalam pelbagai senario, seperti caching, baris gilir mesej, kaunter, kunci yang diedarkan, dsb.
2. Pasang Redis
Sebelum menggunakan Redis, kita perlu memasangnya terlebih dahulu. Pemasangan Redis boleh dimuat turun dari tapak web rasmi, dipasang menggunakan pengurus pakej, atau digunakan menggunakan Docker. Berikut ialah cara memasang menggunakan pengurus pakej.
Kita boleh menjalankan arahan berikut dalam Terminal untuk memasang Redis:
sudo apt-get update
sudo apt -get install redis-server
Kita boleh menjalankan arahan berikut dalam Terminal untuk memasang Redis:
sudo yum update
sudo yum install redis
Kita boleh menggunakan Homebrew untuk memasang Redis:
brew install redis
Kami boleh memuat turun versi Windows Redis dari tapak web rasmi dan memasangnya.
3 Interaksi antara bahasa Go dan Redis
Selepas memasang Redis, kita boleh mula berinteraksi dengan Redis dalam bahasa Go. Untuk mencapai matlamat ini, kami perlu memasang beberapa perpustakaan klien Redis. Dalam artikel ini, kami akan menggunakan perpustakaan go-redis untuk berinteraksi dengannya.
Kami boleh menjalankan arahan berikut dalam Terminal untuk memasang pustaka go-redis:
pergi dapatkan github. com/ go-redis/redis
Berikut ialah beberapa operasi Redis ringkas yang membolehkan kami memahami cara menggunakan Redis dalam bahasa Go.
Sambung ke Redis:
klien := redis.NewClient(&redis.Options{
Addr: "localhost:6379", // Redis地址 Password: "", // Redis密码 DB: 0, // Redis数据库
})
pong, err := client.Ping(). Keputusan ()
fmt.Println(pong, err) // Output: PONG
Tetapkan pasangan nilai kunci:
err := client.Set("key", "value ", 0).Err()
if err != nil {
panic(err)
}
Dapatkan pasangan nilai kunci:
val, err := klien. Dapatkan("kunci").Result()
if err != nil {
panic(err)
}
fmt.Println("key", val)
Delete key-value pasangan:
err = client.Del("key").Err()
if err != nil {
panic(err)
}
Kod di atas menunjukkan sambungan kepada Redis dan menetapkan kunci Bagaimana untuk mengendalikan pasangan nilai, mendapatkan pasangan nilai kunci dan memadam pasangan nilai kunci. Melalui operasi mudah ini, kita boleh membiasakan diri menggunakan Redis dalam bahasa Go.
Apabila menggunakan Redis, anda juga boleh melakukan beberapa operasi lanjutan. Sebagai contoh, kita boleh menggunakan transaksi Redis untuk memastikan bahawa sekumpulan arahan dilaksanakan pada masa yang sama. Pustaka go-redis juga menyokong ciri ini. Berikut ialah contoh asas:
func exampleTransaction() {
err := client.Watch(func(tx *redis.Tx) error { _, err := tx.Pipelined(func(pipe redis.Pipeliner) error { pipe.Set("key1", "value1", 0) pipe.Incr("key2") return nil }) return err }, "key1", "key2") if err == redis.TxFailedErr { // 乐观锁被打破了 fmt.Println("Transaction failed") } else if err != nil { panic(err) }
}
Dalam contoh di atas, kami mencipta transaksi Redis dan menyediakan pasangan nilai kunci dan operasi menambah 1 pada nilai kunci. Jika kunci optimistik ditetapkan dan nilai mana-mana kunci berubah selepas pelaksanaan, operasi akan dianggap gagal.
4. Kesimpulan
Dalam artikel ini, kami memperkenalkan konsep asas Redis dan cara menggunakan Redis dalam bahasa Go. Menggunakan perpustakaan go-redis, kami boleh menyelesaikan operasi dengan mudah seperti menyambung, menetapkan, mendapatkan dan memadam Redis, dan juga boleh melakukan operasi lanjutan seperti transaksi Redis. Dengan pengetahuan ini, kita boleh lebih memahami dan menggunakan Redis dan peranannya dalam era data besar.
Atas ialah kandungan terperinci Cara menggunakan pangkalan data Redis dalam bahasa Go. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!