Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

bearaujus/bmemcache

Repository files navigation

BMemCache - Generic in-memory caching library in Go

License Go Report Card

bmemcache is a generic, thread-safe caching library for Go. It provides a flexible interface for setting, retrieving, and managing cached data with support for auto-cleanup of expired items and customizable cache key generation.

Installation

To install BMemCache, run:

go get github.com/bearaujus/bmemcache

Import

import "github.com/bearaujus/bmemcache"

Features

  • Generic cache with type safety
  • Automatic expiration and cleanup
  • Simple functions for setting, retrieving, and deleting cache entries
  • Thread-safe package

Usage

Below are example of bmemcache basic usage:

package main
import (
	"fmt"
	"time"
	"github.com/bearaujus/bmemcache"
)
func main() {
	// Create a new cache instance with auto-cleanup enabled every 1 minute.
	cache := bmemcache.New[string](bmemcache.WithAutoCleanUp(1 * time.Minute))
	defer cache.Close() // Always close the cache when done.
	// Set a value without expiration.
	cache.Set("Hello, World!", "greeting")
	// Retrieve the value.
	value, err := cache.Get("greeting")
	if err != nil {
		fmt.Println("Error:", err)
	} else {
		fmt.Println("Cached value:", value)
	}
	// Set a value with expiration.
	cache.SetWithExp("Temporary Data", 5*time.Second, "temp")
	// Check if the key exists.
	if cache.IsExist("temp") {
		fmt.Println("Temp key exists.")
	}
	// Wait for expiration.
	time.Sleep(6 * time.Second)
	if _, err := cache.Get("temp"); err != nil {
		fmt.Println("Temp key has expired:", err)
	}
	// Clear the cache.
	cache.Clear()
}

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

Generic in-memory caching library in Go

Topics

Resources

License

Stars

Watchers

Forks

Packages

Contributors

AltStyle によって変換されたページ (->オリジナル) /