Потокобезопасный менеджер кеша на основе LRU (Least Recently Used)
- Установка зависимости в вашу Go программу:
go get -u github.com/K1flar/LRU-Cache
- Подключение в коде:
import "github.com/K1flar/LRU-Cache/pkg/lru"
- func Cap
- func Delete
- func Exist
- func FlushAll
- func Get
- func Keys
- func Len
- func LoadJSON
- func New
- func Rename
- func Resize
- func SaveJSON
- func Set
- func Values
func Cap() int
Cap возвращает ёмкость кеша.
func Delete(key K) error
Delete удаляет элемент с ключём key
.
func Exist(key K) bool
Exist проверяет на наличие элемент с ключём key
.
func FlushAll() error
FlushAll очищает кеш.
func Get(key K) (value V, ok bool)
Get возвращает элемент с ключём key
если он есть.
func Keys() []K
Keys возвращает все ключи в кеше.
func Len() int
Len возвращает количество элементов в кеше.
func LoadJSON(filePath string) error
LoadJSON загружает данные в формате JSON из файла filePath
в кеш.
func New[K comparable, V any](cap int) *LRUCache
New создает кеш размером cap
.
func Rename(key, newKey K) error
Rename изменяет ключ key
на новый newKey
у элемента.
func Resize(cap int) error
Resize изменяет размер кеша.
Если cap
> ёмкости кеша - элементы копируются в новое хранилище.
Если cap
= ёмкости кеша - ничего не меняется.
Елси cap
< текущее количество элементов в кеше - в новое хранилище попадают только наиболее используемые элементы, остальные - урезаются.
func SaveJSON(filePath string) error
SaveJSON записывает данные из кеша в файл filePath
в формате JSON.
func Set(key K, value V)
Set устанавливает новое значение элементу с ключем key
или создает элемент, если его нет.
func Values() []V
Values возвращает все элементы кеша.