Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Key ¶
type Key interface {
Hash() []byte
}
Key is the interface that every key in LRU Cache should implement.
type ShardedLRUCache ¶
type ShardedLRUCache struct {
// contains filtered or unexported fields
}
ShardedLRUCache is a sharded LRU Cache, thread safe.
func NewShardedLRUCache ¶
func NewShardedLRUCache(capacity, shardCount uint) *ShardedLRUCache
NewShardedLRUCache creates a ShardedLRUCache.
func (*ShardedLRUCache) Get ¶
func (s *ShardedLRUCache) Get(key Key) (Value, bool)
Get gets a value from a ShardedLRUCache.
func (*ShardedLRUCache) Put ¶
func (s *ShardedLRUCache) Put(key Key, value Value)
Put puts a (key, value) pair to a ShardedLRUCache.
type SimpleLRUCache ¶
type SimpleLRUCache struct {
// contains filtered or unexported fields
}
SimpleLRUCache is a simple least recently used cache, not thread-safe, use it carefully.
func NewSimpleLRUCache ¶
func NewSimpleLRUCache(capacity uint) *SimpleLRUCache
NewSimpleLRUCache creates a SimpleLRUCache object, whose capacity is "capacity". NOTE: "capacity" should be a positive value.
func (*SimpleLRUCache) Get ¶
func (l *SimpleLRUCache) Get(key Key) (value Value, ok bool)
Get tries to find the corresponding value according to the given key.
func (*SimpleLRUCache) Put ¶
func (l *SimpleLRUCache) Put(key Key, value Value)
Put puts the (key, value) pair into the LRU Cache.
type Value ¶
type Value interface { }
Value is the interface that every value in LRU Cache should implement.