package main import ( "fmt" "github.com/bradfitz/gomemcache/memcache" ) var server = "localhost:11211" // Memcached服务主机地址和端口号 func main() { mc := memcache.New(server) key := "slogan" value := "PHP是世界上最好の语言" expiration := 3600 // 缓存过期时间,可以指定N秒后过期(但不能超过30天),也可以设为一个时间戳(秒),若为0则永不过期 //========== 设置缓存 ==========// err := mc.Set(&memcache.Item{Key: key, Value: []byte(value), Expiration: int32(expiration)}) if err != nil { fmt.Printf("设置缓存失败,原因:%+v \n", err.Error()) } else { fmt.Println("设置缓存成功") // 设置缓存成功 } //========== 获取缓存(命中) ==========// item, err := mc.Get(key) if err != nil { fmt.Printf("获取缓存失败,原因:%+v \n", err.Error()) fmt.Printf("item == %+v \n", item) } else { fmt.Println("获取缓存成功") // 获取缓存成功 fmt.Printf("缓存Key为:%+v \n", item.Key) // 存Key为:slogan fmt.Printf("缓存Value为:%+v \n", string(item.Value)) // 缓存Value为:PHP是世界上最好の语言 } //========== 删除缓存 ==========// err = mc.Delete(key) if err != nil { fmt.Printf("删除缓存失败,原因:%+v \n", err.Error()) } else { fmt.Println("删除缓存成功") // 删除缓存成功 } //========== 获取缓存(不命中) ==========// item, err = mc.Get(key) if err != nil { fmt.Printf("获取缓存失败,原因:%+v \n", err.Error()) // 获取缓存失败,原因:memcache: cache miss fmt.Printf("item == %+v \n", item) // item == <nil> } else { fmt.Println("获取缓存成功") fmt.Printf("缓存Key为:%+v \n", item.Key) fmt.Printf("缓存Value为:%+v \n", string(item.Value)) } } //========== 总结 ==========// // 1、Go语言操作Memcached和其它语言没有什么不同,除了经常用到的Set()、Get()、Delete()之外同样也有Increment()、Decrement()、 // Replace()等方法,根据需求使用即可。
Copyright © 2024 码农人生. All Rights Reserved