简介
[Memcached]是一个自由开源的,高性能,分布式内存对象缓存系统。
[Memcached]是一种基于 [内存] 的 key-value 存储,用来存储小块的任意数据(字符串、对象)。这些数据可以是数据库调用、API 调用或者是页面渲染的结果
docker-compose 安装 Memcached
- docker-compose.yml
version: '3'
services:
memcached:
image: memcached:1.6.14
container_name: my-memcached
volumes:
- ./data:/data
ports:
- '11211:11211'
- docker-compose up – 安装并启动
go 操作 memcached
go get github.com/bradfitz/gomemcache/memcache
-
set 操作
var (server = "127.0.0.1:11211") func main() { var err error m := memcache.New(server) if m == nil {fmt.Printf("memcache new failed") return } err = m.Set(&memcache.Item{ Key: "car", Value: []byte("blue car"), }) if err != nil {fmt.Printf("write to memcache failed., %s", err) return } }
-
get 操作
var (server2 = "127.0.0.1:11211") func main() { var err error m := memcache.New(server2) if err != nil {fmt.Printf("memcache new failed, %s", err) return } it, _ := m.Get("car") if string(it.Key) == "car" {fmt.Println("value is", string(it.Value)) } else {fmt.Println("Get failed") } }
-
add 操作
var (server3 = "127.0.0.1:11211") func main() {m := memcache.New(server3) if m == nil {fmt.Printf("memcache new failed") return } m.Add(&memcache.Item{Key: "food", Value: []byte("rice")}) it, err := m.Get("food") if err != nil {fmt.Println("Add failed") } else {if string(it.Key) == "food" {fmt.Println("Add value is", string(it.Value)) } else {fmt.Println("Get failed") } } }
-
replace 操作
var (server4 = "127.0.0.1:11211") func main() {m := memcache.New(server4) if m == nil {fmt.Printf("create memcache failed") return } m.Replace(&memcache.Item{ Key: "food", Value: []byte("momo"), }) it, err := m.Get("food") if err != nil {fmt.Println("replace failed") return } if string(it.Key) == "food" {fmt.Println("replace value is :", string(it.Value)) return } fmt.Println("read failed") }
-
delete 操作
var (server6 = "127.0.0.1:11211") func main() {m := memcache.New(server6) if m == nil {fmt.Println("create new memcached failed") return } if err := m.Delete("food"); err != nil {fmt.Println("delete food failed") return } fmt.Println("delete success") }
-
increment 操作
var (server7 = "127.0.0.1:11211") func main() { var err error m := memcache.New(server7) if m == nil {fmt.Println("create new memcached failed") return } if err = m.Set(&memcache.Item{ Key: "number", Value: []byte("1"), }); err != nil {fmt.Printf("set failed, %s", err) return } newValue, err := m.Increment("number", 5) if err != nil {fmt.Printf("incr failed, %s", err) return } fmt.Println("new value is", newValue) }
-
decrement 操作
var (server8 = "127.0.0.1:11211") func main() { var err error m := memcache.New(server8) if m == nil {fmt.Println("create new memcached failed") return } if err = m.Set(&memcache.Item{ Key: "number2", Value: []byte("5"), }); err != nil {fmt.Printf("set failed, %s", err) return } newValue, err := m.Decrement("number2", 3) if err != nil {fmt.Printf("decr failed, %s", err) return } fmt.Println("new value is", newValue) }
正文完