gcache

package module
v0.0.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 26, 2021 License: MIT Imports: 8 Imported by: 0

README

gcache

cache of golang

Install

go get -u github.com/z9905080/gcache

Usage

   manager := NewMemoryCacheManager()
	manager.AddCache("hello")
   
   argsMap := map[int]interface{}{
   	1: "paramData",
   }
   data, err := manager.GetCache("hello").Remember("a", 1, argsMap, func(argsMaps map[int]interface{}) (interface{}, error) {
   	return "B", nil
   })
   log.Println("B:", data, err)

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CacheInterface

type CacheInterface interface {
	Remember(key string, expireTime int, argsMaps map[int]interface{}, isForce bool, getDataFunc GetDataFunc) (interface{}, error)
	Forget(key string, argsMap map[int]interface{}) error
	ForgetByHashKey(hashKey string)
	GetHashKey(originKey string, argsMap map[int]interface{}) (string, error)
	Check()
}

type CacheManager

type CacheManager interface {
	AddCache(mCacheName string)
	RemoveCache(mCacheName string)
	GetCache(mCacheName string) CacheInterface
	FlushAll()
	Check()
}

func NewMemoryCacheManager

func NewMemoryCacheManager() CacheManager

NewMemoryCacheManager 新的Cache控管中心

func Start added in v0.0.2

func Start(mFunc ConstructFunc) CacheManager

type ConstructFunc added in v0.0.2

type ConstructFunc func() CacheManager

type GetDataFunc

type GetDataFunc func(argsMaps map[int]interface{}) (interface{}, error)

type MemoryCache

type MemoryCache struct {
	Cache       map[string]*cacheST
	Lock        *sync.RWMutex
	InitHashKey string
}

MemoryCache 搜集結構map

func (*MemoryCache) Check

func (c *MemoryCache) Check()

func (*MemoryCache) Flush

func (c *MemoryCache) Flush()

Flush 將整個Cache清空

func (*MemoryCache) Forget

func (c *MemoryCache) Forget(key string, argsMap map[int]interface{}) error

Forget 清除某一筆Cache資料with Key

func (*MemoryCache) ForgetByHashKey added in v0.0.3

func (c *MemoryCache) ForgetByHashKey(hashKey string)

ForgetByHashKey 清除某一筆Cache資料with HashKey

func (*MemoryCache) GetHashKey added in v0.0.3

func (c *MemoryCache) GetHashKey(originKey string, argsMap map[int]interface{}) (string, error)

func (*MemoryCache) Remember

func (c *MemoryCache) Remember(key string, expireTime int, argsMaps map[int]interface{}, isForce bool, getDataFunc GetDataFunc) (interface{}, error)

Remember 將資料記錄到cache

type MemoryCacheManager

type MemoryCacheManager struct {
	*sync.RWMutex

	CacheMap map[string]*MemoryCache
	// contains filtered or unexported fields
}

func (*MemoryCacheManager) AddCache

func (m *MemoryCacheManager) AddCache(mCacheName string)

func (*MemoryCacheManager) Check

func (m *MemoryCacheManager) Check()

func (*MemoryCacheManager) FlushAll

func (m *MemoryCacheManager) FlushAll()

func (*MemoryCacheManager) GetCache

func (m *MemoryCacheManager) GetCache(mCacheName string) CacheInterface

func (*MemoryCacheManager) RemoveCache

func (m *MemoryCacheManager) RemoveCache(mCacheName string)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL