golang cache缂撳瓨鎬庝箞瀹炵幇
鍦℅o璇█涓紝瀹炵幇缂撳瓨鍙互浣跨敤浠ヤ笅涓ょ鏂瑰紡锛?/p>
- 浣跨敤
sync.Map
瀹炵幇缂撳瓨锛?code>sync.Map鏄疓o璇█鎻愪緵鐨勫苟鍙戝畨鍏ㄧ殑map锛屽彲浠ョ敤浜庡疄鐜扮紦瀛樸€傚彲浠ヤ娇鐢?code>sync.Map鐨?code>Load鍜?code>Store鏂规硶鏉ヨ幏鍙栧拰瀛樺偍缂撳瓨鏁版嵁銆?/li>
package main
import (
"fmt"
"sync"
)
func main() {
cache := sync.Map{}
// 瀛樺偍缂撳瓨鏁版嵁
cache.Store("key1", "value1")
// 鑾峰彇缂撳瓨鏁版嵁
value, ok := cache.Load("key1")
if ok {
fmt.Println(value)
}
}
- 浣跨敤绗笁鏂圭紦瀛樺簱瀹炵幇缂撳瓨锛欸o璇█鏈夎澶氭垚鐔熺殑绗笁鏂圭紦瀛樺簱鍙互浣跨敤锛屽
go-cache
銆?code>bigcache绛夈€傝繖浜涘簱鎻愪緵浜嗘洿澶氱殑缂撳瓨鐗规€э紝濡傝繃鏈熸椂闂淬€丩RU绠楁硶绛夈€?/li>
package main
import (
"fmt"
"github.com/patrickmn/go-cache"
"time"
)
func main() {
// 鍒涘缓缂撳瓨瀵硅薄
c := cache.New(5*time.Minute, 10*time.Minute)
// 瀛樺偍缂撳瓨鏁版嵁
c.Set("key1", "value1", cache.DefaultExpiration)
// 鑾峰彇缂撳瓨鏁版嵁
value, found := c.Get("key1")
if found {
fmt.Println(value)
}
}
鏃犺浣跨敤鍝鏂瑰紡瀹炵幇缂撳瓨锛岄兘闇€瑕佹敞鎰忕紦瀛樼殑骞跺彂瀹夊叏鎬у拰缂撳瓨鐨勫け鏁堢瓥鐣ワ紝浠ヤ繚璇佹暟鎹殑涓€鑷存€у拰鍙敤鎬с€?/p>
相关问答