go-cache is an in-memory key:value store/cache similar to memcached that is suitable for applications running on a single machine. Its major advantage is that, being essentially a thread-safe map[string]interface{} with expiration times, it doesn't need to serialize or transmit its contents over the network. Any object can be stored, for a given duration or forever, and the cache can be safely used by multiple goroutines. Although go-cache isn't meant to be used as a persistent datastore, the entire cache can be saved to and loaded from a file (using c.Items() to retrieve the items map to serialize, and NewFrom() to create a cache from a deserialized one) to recover from downtime quickly.

Features

  • Return a new cache with a given default expiration duration and cleanup interval
  • Add an item to the cache only if an item doesn't already exist for the given key
  • GetWithExpiration returns an item and its expiration time from the cache
  • Load and add cache items from the given filename
  • Set a new value for the cache key only if it already exists
  • Write the cache's items (using Gob) to an io.Writer

Project Samples

Project Activity

See All Activity >

Categories

Libraries

License

MIT License

Follow go-cache

go-cache Web Site

Other Useful Business Software
Forever Free Full-Stack Observability | Grafana Cloud Icon
Forever Free Full-Stack Observability | Grafana Cloud

Our generous forever free tier includes the full platform, including the AI Assistant, for 3 users with 10k metrics, 50GB logs, and 50GB traces.

Built on open standards like Prometheus and OpenTelemetry, Grafana Cloud includes Kubernetes Monitoring, Application Observability, Incident Response, plus the AI-powered Grafana Assistant. Get started with our generous free tier today.
Create free account
Rate This Project
Login To Rate This Project

User Reviews

Be the first to post a review of go-cache!

Additional Project Details

Programming Language

Go

Related Categories

Go Libraries

Registered

2021-11-05