go get -u github.com/no-src/nscache
First, you need to import the cache driver, then create your cache component instance with the specified connection string and use it.
Current support following cache drivers
Driver | Import Driver Package | Connection String Example |
---|---|---|
Memory | github.com/no-src/nscache/memory |
memory: |
Redis | github.com/no-src/nscache/redis |
redis://127.0.0.1:6379 |
Redis Cluster | github.com/no-src/nscache/redis_cluster |
redis-cluster://127.0.0.1:7001?addr=127.0.0.1:7002&addr=127.0.0.1:7003 |
BuntDB | github.com/no-src/nscache/buntdb |
buntdb://:memory: or buntdb://buntdb.db |
Etcd | github.com/no-src/nscache/etcd |
etcd://127.0.0.1:2379?dial_timeout=5s |
BoltDB | github.com/no-src/nscache/boltdb |
boltdb://boltdb.db |
FreeCache | github.com/no-src/nscache/freecache |
freecache://?cache_size=50mib |
BigCache | github.com/no-src/nscache/bigcache |
bigcache://?eviction=10m |
FastCache | github.com/no-src/nscache/fastcache |
fastcache://?max_bytes=50mib |
Memcached | github.com/no-src/nscache/memcached |
memcached://127.0.0.1:11211 |
Proxy | github.com/no-src/nscache/proxy/client |
proxy://127.0.0.1:8080 |
For example, initial a memory cache and write, read and remove data.
package main
import (
"time"
_ "github.com/no-src/nscache/memory"
"github.com/no-src/log"
"github.com/no-src/nscache"
)
func main() {
// initial cache driver
c, err := nscache.NewCache("memory:")
if err != nil {
log.Error(err, "init cache error")
return
}
defer c.Close()
// write data
k := "hello"
c.Set(k, "world", time.Minute)
// read data
var v string
if err = c.Get(k, &v); err != nil {
log.Error(err, "get cache error")
return
}
log.Info("key=%s value=%s", k, v)
// remove data
if err = c.Remove(k); err != nil {
log.Error(err, "remove cache error")
return
}
}
You can use the command line tool to operate all the cache drivers that nscache
supports.
Install the command line tool nscache-cli
.
go install github.com/no-src/nscache/cmd/nscache-cli@latest
Run the cli tool with specified cache driver connection string to operate cache.
nscache-cli memory:
Install the proxy server nscache-server
.
go install github.com/no-src/nscache/cmd/nscache-server@latest
Run the proxy server with specified listen address and cache driver connection string.
nscache-server -addr=:8080 -conn=memory:
You can use the code to operate cache proxy server like the example code in the Quick Start section.
Or use the nscache-cli
to connect to the proxy server and operate cache.
nscache-cli proxy://127.0.0.1:8080