<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          cache2goGo 緩存庫

          聯(lián)合創(chuàng)作 · 2023-09-29 05:52

          cache2go 是一個 Go 的并發(fā)安全緩存庫,具有到期和訪問計數(shù)器的功能。

          示例代碼:

          package main
          
          import (
              "github.com/muesli/cache2go"
              "fmt"
              "time"
          )
          
          // Keys & values in cache2go can be off arbitrary types, e.g. a struct.
          type myStruct struct {
              text     string
              moreData []byte
          }
          
          func main() {
              // Accessing a new cache table for the first time will create it.
              cache := cache2go.Cache("myCache")
          
              // We will put a new item in the cache. It will expire after
              // not being accessed via Value(key) for more than 5 seconds.
              val := myStruct{"This is a test!", []byte{}}
              cache.Add("someKey", 5*time.Second, &val)
          
              // Let's retrieve the item from the cache.
              res, err := cache.Value("someKey")
              if err == nil {
                  fmt.Println("Found value in cache:", res.Data().(*myStruct).text)
              } else {
                  fmt.Println("Error retrieving value from cache:", err)
              }
          
              // Wait for the item to expire in cache.
              time.Sleep(6 * time.Second)
              res, err = cache.Value("someKey")
              if err != nil {
                  fmt.Println("Item is not cached (anymore).")
              }
          
              // Add another item that never expires.
              cache.Add("someKey", 0, &val)
          
              // cache2go supports a few handy callbacks and loading mechanisms.
              cache.SetAboutToDeleteItemCallback(func(e *cache2go.CacheItem) {
                  fmt.Println("Deleting:", e.Key(), e.Data().(*myStruct).text, e.CreatedOn())
              })
          
              // Remove the item from the cache.
              cache.Delete("someKey")
          
              // And wipe the entire cache table.
              cache.Flush()
          }

           

          go run mycachedapp.go
          瀏覽 43
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产激情视频网 | 豆花视频综合在线 | 俩小伙3p老熟女露脸 | 国产精品无码专区AV在线播放 | 免费 无码 国产在线 |