Documentation ¶
Index ¶
- Variables
- type Cache
- type FIFO
- type Item
- type LRU
- type TTLString
- func (c TTLString) Clear()
- func (c *TTLString) Get(id string) (interface{}, bool)
- func (c TTLString) Len() int
- func (c *TTLString) Pop() (string, interface{}, bool)
- func (c *TTLString) Put(key string, value interface{})
- func (c *TTLString) PutWithTTL(key string, value interface{}, ttl time.Duration)
- type TTLUint64
- func (c TTLUint64) Clear()
- func (c *TTLUint64) Exists(id uint64) bool
- func (c *TTLUint64) Get(id uint64) (interface{}, bool)
- func (c *TTLUint64) GetAllID() []uint64
- func (c TTLUint64) Len() int
- func (c *TTLUint64) Put(id uint64, value interface{})
- func (c *TTLUint64) PutWithTTL(key uint64, value interface{}, ttl time.Duration)
- func (c *TTLUint64) Remove(key uint64)
- type TwoQueue
- type Type
Constants ¶
This section is empty.
Variables ¶
var ( // DefaultCacheType set default cache type for NewDefaultCache function DefaultCacheType = LRUCache )
Functions ¶
This section is empty.
Types ¶
type Cache ¶
type Cache interface { // Put puts an item into cache. Put(key uint64, value interface{}) // Get retrieves an item from cache. Get(key uint64) (interface{}, bool) // Peek reads an item from cache. The action is no considered 'Use'. Peek(key uint64) (interface{}, bool) // Remove eliminates an item from cache. Remove(key uint64) // Elems return all items in cache. Elems() []*Item // Len returns current cache size Len() int }
Cache is an interface for cache system
func NewDefaultCache ¶
NewDefaultCache create Cache instance by default cache type
type FIFO ¶
FIFO is 'First-In-First-Out' cache.
type LRU ¶
type LRU struct {
// contains filtered or unexported fields
}
LRU is 'Least-Recently-Used' cache.
type TTLString ¶
type TTLString struct {
// contains filtered or unexported fields
}
TTLString is simple TTL saves key string and value.
func NewStringTTL ¶
NewStringTTL creates a new TTLString cache.
type TTLUint64 ¶
type TTLUint64 struct {
// contains filtered or unexported fields
}
TTLUint64 is simple TTL saves only uint64s.
func (*TTLUint64) PutWithTTL ¶
PutWithTTL puts an item into cache with specified TTL.
type TwoQueue ¶
type TwoQueue struct {
// contains filtered or unexported fields
}
TwoQueue is a fixed size 2Q cache. 2Q is an enhancement over the standard LRU cache in that it tracks both frequently and recently used entries separately. This avoids a burst in access to new entries from evicting frequently used entries. It adds some additional tracking overhead to the standard LRU cache, and is computationally about 2x the cost, and adds some metadata over head. The ARCCache is similar, but does not require setting any parameters. TwoQueue implementation is based on https://github.com/hashicorp/golang-lru/blob/master/2q.go