Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara menggunakan Redis dalam bahasa Go

Cara menggunakan Redis dalam bahasa Go

PHPz
PHPzasal
2023-04-05 14:37:22931semak imbas

Dalam aplikasi web moden, Redis sering digunakan secara meluas sebagai cache atau stor sesi. Bahasa Go digemari oleh banyak pembangun kerana primitif konkurensi yang sangat baik. Dalam artikel ini, kita akan membincangkan cara menggunakan Redis dalam bahasa Go, memfokuskan pada cara menggunakan Redis.

  1. Pasang dan konfigurasikan Redis

Mula-mula, kita perlu memasang dan mengkonfigurasi Redis. Terdapat banyak cara yang berbeza untuk memasang Redis, tetapi di sini kami akan mengambil cara yang paling mudah: menggunakan Docker.

Docker ialah platform kontena sumber terbuka yang popular yang memudahkan untuk membungkus aplikasi dan semua kebergantungan mereka. Untuk menjalankan Redis pada komputer tempatan anda, kami perlu memasang Docker terlebih dahulu. Selepas pemasangan selesai, gunakan arahan berikut untuk memulakan Redis:

docker run --name redis -p 6379:6379 -d redis redis-server --appendonly yes

Arahan di atas akan memuat turun imej Redis dan memulakan Redis dalam bekas Docker. Kami boleh menyemak sama ada bekas Redis sedang berjalan menggunakan perintah docker ps:

docker ps

Jika semuanya seperti yang dijangkakan, anda sepatutnya melihat bekas Redis berjalan. Langkah seterusnya ialah memastikan anda boleh menyambung ke Redis melalui rangkaian. Kami boleh menggunakan arahan berikut untuk menyemak sama ada perkhidmatan Redis wujud:

redis-cli ping

Jika ia kembali PONG, maka anda telah berjaya menyambung ke Redis. Langkah seterusnya ialah menggunakan Redis dalam bahasa Go.

  1. Menggunakan Redis dalam bahasa Go

Terdapat banyak perpustakaan klien Redis untuk dipilih dalam bahasa Go, di sini kami akan menggunakan pustaka go-redis. Untuk menggunakan pustaka ini, gunakan arahan berikut pada baris arahan:

go get github.com/go-redis/redis/v8

Ini akan memuat turun pustaka dan semua kebergantungannya. Kini, kami boleh merujuk go-redis dalam kod Go kami dan menyambung ke contoh Redis yang kami gunakan dalam langkah pertama:

// 连接到Redis
rdb := redis.NewClient(&redis.Options{
   Addr: "localhost:6379",
   Password: "", // 没有设置密码
   DB: 0, // 使用默认的数据库
})

Dalam kod di atas, kami mencipta klien Redis baharu dan menentukan alamat daripada contoh Redis yang kami jalankan pada langkah pertama. Jika kami menggunakan hos yang berasingan daripada Redis, bukannya bekas Docker, kami perlu menukar localhost kepada alamat IP Redis.

Kini, kita boleh menggunakan pustaka go-redis untuk menghantar arahan kepada tika Redis. Berikut ialah beberapa contoh arahan:

// 设置键值对
err := rdb.Set(ctx, "key", "value", 0).Err()

if err != nil {
    panic(err)
}

// 获取键值对
val, err := rdb.Get(ctx, "key").Result()

if err != nil {
    panic(err)
}

fmt.Println("key", val)

// 删除键值对
err = rdb.Del(ctx, "key").Err()

if err != nil {
    panic(err)
}

Dalam kod di atas, kami menggunakan pustaka go-redis untuk menetapkan, mendapatkan dan memadam pasangan nilai kunci. Perlu diingat bahawa semua fungsi dalam perpustakaan memerlukan konteks (ctx), ini disebabkan oleh perpustakaan klien Redis menggunakan goroutine dan saluran secara dalaman untuk mencapai keselarasan. Oleh itu, konteks mesti sentiasa digunakan apabila menggunakan go-redis.

  1. Kesimpulan

Dalam artikel ini, kami membincangkan cara menggunakan Redis dalam bahasa Go dan cara menggunakan Redis dengan mudah menggunakan Docker. Dengan menggunakan perpustakaan go-redis, berinteraksi dengan Redis menjadi sangat mudah, malah kami boleh menggabungkannya dengan ciri lain untuk membina aplikasi web masa nyata, seperti melaksanakan sembang, mengemas kini data repositori, dsb. Dalam artikel akan datang, kami akan membincangkan cara menggunakan ciri Redis yang lebih maju, seperti mekanisme terbitkan-langganan, kunci teragih, dsb.

Atas ialah kandungan terperinci Cara menggunakan Redis dalam bahasa Go. 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