Skip to content

BatmanBruc/cache

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

API Reference

New(cleanupInterval time.Duration, maxSize int) *Cache

Создает новый экземпляр кэша.

Параметры:

  • cleanupInterval - интервал автоматической очистки просроченных записей
  • maxSize - максимальное количество записей (0 = без ограничений)

Возвращает:

  • Указатель на новый экземпляр Cache

Set(key, value string, ttl time.Duration) (bool, string)

Добавляет значение в кэш.

Параметры:

  • key - ключ записи
  • value - значение для хранения
  • ttl - время жизни записи (time-to-live)

Возвращаемые значения:

  • (true, "") - при успешном добавлении
  • (false, "max size") - при достижении лимита размера

Особенности:

  • ttl = 0 - запись без времени жизни (хранится до явного удаления)

Get(key string) *StageItem

Получает значение из кэша.

Параметры:

  • key - ключ для поиска

Возвращает:

  • string - значение
  • bool - существует ли ключ

Exists(key string) bool

Проверяет существование ключа в кэше.

Параметры:

  • key - ключ для проверки

Возвращает:

  • true - если ключ существует и не просрочен
  • false - если ключ не найден или просрочен

Delete(key string)

Удаляет запись из кэша.

Параметры:

  • key - ключ записи для удаления

Keys() []string

Возвращает все ключи кэша.

Возвращает:

  • Срез строк со всеми ключами (включая не просроченные)

Stop()

Останавливает фоновую очистку кэша.

Тесты

go test -run TestSetDelete

Проверяет добавление и удаления записи.

go test -run TestCacheExpiration

Проверяет удаление записи по истечение времени жизни записи.

go test -run TestMaxSize

Проверяет можно ли добавить запись больше задонного лимита.

go test -run TestKeys

Проверяет функцию получения ключей.

go test -run TestCacheConcurrent

Проверяет на состояние гонки.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages