name | sort |
---|---|
Cache Module |
2 |
Beego's cache module is used for caching data, inspired by database/sql
. It supports four cache providers: file, memcache, memory and redis. You can install it by:
go get github.com/astaxie/beego/cache
If you use the memcache
or redis
provider, you should first install:
go get -u github.com/astaxie/beego/cache/memcache
and then import:
import _ "github.com/astaxie/beego/cache/memcache"
First step is importing the package:
import (
"github.com/astaxie/beego/cache"
)
Then initialize a global variable object:
bm, err := cache.NewCache("memory", `{"interval":60}`)
Then we can use bm
to modify the cache:
bm.Put("astaxie", 1, 10)
bm.Get("astaxie")
bm.IsExist("astaxie")
bm.Delete("astaxie")
Here is how to configure the four providers:
-
memory
interval
stands for GC time, which means the cache will be cleared every 60s:{"interval":60}
-
file
{"CachePath":"./cache","FileSuffix":".cache","DirectoryLevel":2,"EmbedExpiry":120}
-
redis
redis uses redigo
{"key":"collectionName","conn":":6039","dbNum":"0","password":"thePassWord"}
- key: the Redis collection name
- conn: Redis connection info
- dbNum: Select the DB having the specified zero-based numeric index.
- password: the password for connecting password-protected Redis server
-
memcache
memcache uses vitess
{"conn":"127.0.0.1:11211"}
The cache module uses the Cache interface, so you can create your own cache provider by implementing this interface and registering it.
type Cache interface {
Get(key string) interface{}
GetMulti(keys []string) []interface{}
Put(key string, val interface{}, timeout int64) error
Delete(key string) error
Incr(key string) error
Decr(key string) error
IsExist(key string) bool
ClearAll() error
StartAndGC(config string) error
}
Register your provider:
func init() {
cache.Register("myowncache", NewOwnCache())
}