📚 cachego - Awesome Go Library for Database
Golang Cache component for multiple drivers.
🏷️ Database
📂 Data stores with expiring records, in-memory distributed data stores, or in-memory subsets of file-based databases.
⭐ 369 stars
Detailed Description of cachego
Cachego
Simple interface for caching
Installation
Cachego requires Go 1.18 or later.
go get github.com/faabiosr/cachego
Usage
package main
import (
"log"
"time"
"github.com/faabiosr/cachego/sync"
)
func main() {
cache := sync.New()
if err := cache.Save("user_id", "1", 10*time.Second); err != nil {
log.Fatal(err)
}
id, err := cache.Fetch("user_id")
if err != nil {
log.Fatal(err)
}
log.Printf("user id: %s \n", id)
keys := cache.FetchMulti([]string{"user_id", "user_name"})
for k, v := range keys {
log.Printf("%s: %s\n", k, v)
}
if cache.Contains("user_name") {
cache.Delete("user_name")
}
if _, err := cache.Fetch("user_name"); err != nil {
log.Printf("%v\n", err)
}
if err := cache.Flush(); err != nil {
log.Fatal(err)
}
}
Supported drivers
Documentation
Read the full documentation at https://pkg.go.dev/github.com/faabiosr/cachego.
Development
Requirements
- Install docker
- Install docker-compose
Makefile
// Clean up
$ make clean
//Run tests and generates html coverage file
$ make cover
// Up the docker containers for testing
$ make docker
// Format all go files
$ make fmt
//Run linters
$ make lint
// Run tests
$ make test
License
This project is released under the MIT licence. See LICENSE for more details.