Skip to content

no-src/nscache

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

nscache

Build License Go Reference Go Report Card codecov Release Mentioned in Awesome Go

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

About

A Go caching framework that supports multiple data source drivers

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Contributors 2

  •  
  •