Files
sponge/pkg/cache
2025-03-02 20:13:35 +08:00
..
2024-12-19 13:31:29 +08:00
2024-11-21 20:08:07 +08:00
2025-03-02 20:13:35 +08:00
2025-03-02 20:13:35 +08:00
2025-03-02 20:13:35 +08:00
2024-12-19 13:31:29 +08:00
2024-12-19 13:31:29 +08:00

cache

redis and memory cache libraries.

Example of use

Using Redis Cache

package main

import (
	"github.com/redis/go-redis/v9"
	"github.com/go-dev-frame/sponge/pkg/cache"
	"github.com/go-dev-frame/sponge/pkg/encoding"
)

func main() {
	redisClient := redis.NewClient(&redis.Options{
		Addr:     "localhost:6379",
		Password: "",
		DB:       0,
	})

	cachePrefix := ""
	jsonEncoding := encoding.JSONEncoding{}
	newObject := func() interface{} {
		return &User{}
	}

	c := cache.NewRedisCache(redisClient, cachePrefix, jsonEncoding, newObject)
	// operations
	// c.Set(ctx, key, value, expiration)
	// c.Get(ctx, key)
	// c.Delete(ctx, key)
}

Using Memory Cache

package main

import (
	"github.com/go-dev-frame/sponge/pkg/cache"
	"github.com/go-dev-frame/sponge/pkg/encoding"
)

func main() {
	// set memory cache client
	//cache.InitGlobalMemory(
	//	WithNumCounters(1e7),
	//	WithMaxCost(1<<30),
	//	WithBufferItems(64),
	//)

	cachePrefix := ""
	jsonEncoding := encoding.JSONEncoding{}
	newObject := func() interface{} {
		return &User{}
	}

	c := cache.NewMemoryCache(redisClient, cachePrefix, jsonEncoding, newObject)
	// operations
	// c.Set(ctx, key, value, expiration)
	// c.Get(ctx, key)
	// c.Delete(ctx, key)
}