Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Menggunakan Redis untuk melaksanakan caching data dalam Beego

Menggunakan Redis untuk melaksanakan caching data dalam Beego

王林
王林asal
2023-06-23 10:24:101704semak imbas

Dengan pembangunan aplikasi Web yang berterusan, caching data telah menjadi teknologi utama, yang boleh meningkatkan prestasi dan kelajuan tindak balas aplikasi Web dengan ketara. Dengan peningkatan pangkalan data Redis, ia telah menjadi bekas caching yang sangat popular, prestasi tinggi, kebolehpercayaan yang tinggi, dan sokongan jenis data yang kaya menjadikannya teknologi caching data pilihan untuk banyak aplikasi Web.

Artikel ini akan memperkenalkan cara menggunakan Redis untuk melaksanakan caching data dalam rangka kerja Beego. Beego ialah rangka kerja web ringan yang ditulis dalam bahasa Go. Ia mempunyai API yang mudah dan mudah digunakan, berprestasi tinggi dan berskala Ia telah menjadi bahagian penting dalam pembangunan web bahasa Go.

Pasang dan konfigurasikan Redis

Sebelum menggunakan Redis untuk menyimpan data, anda perlu memasang dan mengkonfigurasi Redis pada pelayan setempat atau jauh dahulu. Untuk kaedah memasang Redis, anda boleh merujuk kepada dokumentasi rasmi atau tutorial pihak ketiga, dan saya tidak akan pergi ke butiran di sini.

Selepas memasang Redis, anda perlu menambah pakej pergantungan Redis pada aplikasi Beego. Anda boleh menggunakan arahan go get untuk memuat turun dan memasang pakej redis:

go get github.com/gomodule/redigo/redis

Dalam fail konfigurasi aplikasi Beego, tambah konfigurasi sambungan Redis, contohnya:

redis_host = localhost
redis_port = 6379
redis_password = 
redis_db = 0

Alamat hos of Redis dinyatakan di sini Nombor port, kata laluan dan nombor pangkalan data. Jika Redis tidak memerlukan pengesahan kata laluan, biarkan redis_password kosong.

Menggunakan Redis dalam aplikasi Beego

Menggunakan Redis dalam aplikasi Beego adalah sangat mudah Anda hanya perlu memanggil API Redis di mana anda perlu menyimpan data. Anda boleh menggunakan go-redis atau redigo, dua perpustakaan pelanggan Redis yang popular, untuk pembangunan.

Mengambil redigo sebagai contoh, mula-mula perkenalkan pakej redigo di mana Redis perlu digunakan:

import "github.com/gomodule/redigo/redis"

Seterusnya, anda perlu mewujudkan kumpulan sambungan Redis untuk mengurus sambungan Redis. Tambahkan kod berikut pada fungsi permulaan aplikasi Beego:

redis_host := beego.AppConfig.String("redis_host")
redis_port := beego.AppConfig.String("redis_port")
redis_password := beego.AppConfig.String("redis_password")
redis_db := beego.AppConfig.String("redis_db")
redis_pool := &redis.Pool{
    MaxIdle:     3,
    MaxActive:   5,
    IdleTimeout: 240 * time.Second,
    Dial: func() (redis.Conn, error) {
        c, err := redis.Dial("tcp", fmt.Sprintf("%s:%s", redis_host, redis_port))
        if err != nil {
            return nil, err
        }
        if redis_password != "" {
            if _, err := c.Do("AUTH", redis_password); err != nil {
                c.Close()
                return nil, err
            }
        }
        if redis_db != "" {
            if _, err := c.Do("SELECT", redis_db); err != nil {
                c.Close()
                return nil, err
            }
        }
        return c, nil
    },
}
defer redis_pool.Close()

Ini menentukan sambungan melahu maksimum, bilangan maksimum sambungan aktif dan masa melahu maksimum kumpulan sambungan Redis. Dalam fungsi Dail, apabila menyambung ke Redis, operasi pengesahan dan pemilihan pangkalan data pertama kali dilakukan, dan kemudian sambungan Redis dikembalikan.

Seterusnya, anda boleh menggunakan Redis untuk cache data. Sebagai contoh, tulis data ke cache Redis:

conn := redis_pool.Get()
defer conn.Close()

key := "cache_key"
value := "cache_value"
expiration := 1800 // 单位为秒,表示缓存时间为30分钟
_, err := conn.Do("SET", key, value, "EX", expiration)
if err != nil {
    // 处理错误
}

Di sini arahan SET digunakan untuk cache data ke dalam Redis, dan menetapkan kunci cache, nilai dan masa tamat tempoh.

Mendapatkan data cache daripada Redis juga sangat mudah:

conn := redis_pool.Get()
defer conn.Close()

key := "cache_key"
value, err := redis.String(conn.Do("GET", key))
if err == redis.ErrNil {
    // 缓存不存在
} else if err != nil {
    // 处理错误
} else {
    // 使用缓存数据
}

Di sini arahan GET digunakan untuk mendapatkan data cache daripada Redis dan pengendalian ralat dilakukan.

Jika anda perlu memadamkan data cache dalam Redis, gunakan arahan DEL:

conn := redis_pool.Get()
defer conn.Close()

key := "cache_key"
_, err := conn.Do("DEL", key)
if err != nil {
    // 处理错误
}

Ringkasan

Artikel ini memperkenalkan cara menggunakan Redis untuk melaksanakan caching data dalam rangka kerja Beego . Mula-mula, anda perlu memasang Redis dan mengkonfigurasi parameter sambungan, mewujudkan kumpulan sambungan Redis dalam aplikasi Beego, dan kemudian menggunakan API yang disediakan oleh pakej Redigo untuk cache data dan operasi membaca. Menggunakan cache Redis boleh meningkatkan kelajuan tindak balas dan prestasi aplikasi Beego dengan berkesan, dan merupakan pilihan yang baik untuk membangunkan aplikasi web.

Atas ialah kandungan terperinci Menggunakan Redis untuk melaksanakan caching data dalam Beego. 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