GoMemcache是memcache 客户端库,使用简单。
go get github.com/bradfitz/gomemcache/memcache
import (
"github.com/bradfitz/gomemcache/memcache"
)
func main() {
mc := memcache.New("10.0.0.1:11211", "10.0.0.2:11211", "10.0.0.3:11212")
mc.Set(&memcache.Item{Key: "foo", Value: []byte("my value")})
it, err := mc.Get("foo")
...
}
import (
"fmt"
"github.com/bradfitz/gomemcache/memcache"
)
var Client *memcache.Client
const (
MEMCACHE_HOST = ""
MEMCACHE_PORT = ""
)
var CacheErr error
func Cache() {
dsn := fmt.Sprintf("%s:%s", MEMCACHE_HOST, MEMCACHE_PORT)
Client = memcache.New(dsn)
// 添加一个key,过期时间为100s
Client.Add(&memcache.Item{
Key: "golang",
Value: []byte("test golang memcache"),
Flags: 0,
Expiration: 100,
})
// 获取一个key
item1, CacheErr := Client.Get("golang")
if CacheErr != nil {
fmt.Println(CacheErr.Error())
} else {
fmt.Println(string(item1.Value), item1.Key)
}
// 替换一个key,替换掉上面添加的key
Client.Replace(&memcache.Item{
Key: "golang",
Value: []byte("replace golang memcache"),
Flags: 0,
Expiration: 100,
})
// 获取一个key
item2, CacheErr := Client.Get("golang")
if CacheErr != nil {
fmt.Println(CacheErr.Error())
} else {
fmt.Println(string(item2.Value), item2.Key)
}
// 删除一个key
CacheErr = Client.Delete("golang")
if CacheErr != nil {
fmt.Println(CacheErr.Error())
} else {
fmt.Println("删除成功!")
}
// 删除全部
CacheErr = Client.DeleteAll()
if CacheErr != nil {
fmt.Println(CacheErr.Error())
} else {
fmt.Println("全部删除成功!")
}
}
滑稽的是居然不好找到memcache的运行程序,需要自己编译。
32位系统 1.4.4版本:http://static.runoob.com/download/memcached-win32-1.4.4-14.zip
64位系统 1.4.4版本:http://static.runoob.com/download/memcached-win64-1.4.4-14.zip
32位系统 1.4.5版本:http://static.runoob.com/download/memcached-1.4.5-x86.zip
64位系统 1.4.5版本:http://static.runoob.com/download/memcached-1.4.5-amd64.zip
据说在 1.4.5 版本以前 memcached 可以作为一个服务安装,而在 1.4.5 及之后的版本删除了该功能。