Tempoh sah data cache dalam Go: ditetapkan melalui peta.Sintaks Store(kunci, nilai, tamat tempoh), dengan tamat tempoh ialah masa. Tempoh sah jenis tempoh. Contohnya, untuk menyimpan objek pengguna dalam cache dan menetapkan tempoh sah selama 5 minit: userCache.Store("my-user", user, 5 * time.Minute). Data tamat tempoh mengekalkan kesahihan cache melalui pembersihan biasa.
Tamat tempoh data cache dalam Go
Caching ialah teknik biasa untuk meningkatkan prestasi aplikasi web. Ia melibatkan penyimpanan salinan data yang kerap diminta untuk mengurangkan kependaman apabila mengakses sumber data asal. Dalam Go, kita boleh menggunakan sync.Map
untuk melaksanakan caching. Walau bagaimanapun, untuk memastikan keberkesanan cache, kami mesti menetapkan tempoh sah data cache. sync.Map
来实现缓存。然而,为了确保缓存的有效性,我们必须设定缓存数据的有效期。
设定有效期的语法
可以通过以下语法设定缓存数据的有效期:
map.Store(key, value, expiration)
其中:
map
是 sync.Map
实例key
是缓存键value
是缓存值expiration
是有效期,以 time.Duration
类型表示实战案例
假设我们需要缓存一个用户对象,并将其有效期设置为 5 分钟。我们可以使用以下代码段:
package main import ( "sync" "time" ) var userCache = sync.Map{} func main() { // 创建一个用户对象 user := &User{Name: "John Doe", Email: "john.doe@example.com"} // 为用户对象设置 5 分钟的有效期 expiration := 5 * time.Minute // 将用户对象存储到缓存中 userCache.Store("my-user", user, expiration) }
在上面的示例中,我们创建了一个 sync.Map
实例名为 userCache
,并使用 Store
方法将用户对象存储在缓存中。我们还指定了有效期为 5 分钟。之后,我们可以在任何地方访问缓存数据:
// 从缓存中获取用户对象 user, ok := userCache.Load("my-user") if ok { // 处理用户对象 }
如果缓存数据已过期,Load
方法将返回 nil
key
ialah kunci cachevalue
ialah nilai cache tamat tempoh
ialah tempoh sah, diwakili oleh masa. Tempoh
jenissync.Map
bernama userCache
dan menggunakan kod Store
> kaedah menyimpan objek pengguna dalam cache. Kami juga menentukan tempoh sah selama 5 minit. Selepas itu, kita boleh mengakses data cache dari mana-mana sahaja: 🎜rrreee🎜Jika data cache telah tamat tempoh, kaedah Muat
akan mengembalikan nil
. Kesahan cache boleh dikekalkan dengan membersihkan entri cache yang telah tamat tempoh secara berkala. 🎜Atas ialah kandungan terperinci Bagaimana untuk menetapkan tempoh sah data cache Golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!