📚 nscache - Awesome Go Library for Database
A Go caching framework that supports multiple data source drivers.
Detailed Description of nscache
nscache
Installation
go get -u github.com/no-src/nscache
Quick Start
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
}
}
Command Line Tool
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:
Proxy
Proxy Server
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:
Proxy Client
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