candycache/README.md

3.4 KiB
Raw Blame History

Go Candy Cache 🍬

CandyCache — это простой и эффективный кэш на языке Go, который позволяет хранить данные с ограниченным временем жизни (TTL).

Установка

Для использования CandyCache в вашем проекте, установите его, используя go get git.hikan.ru/serr/candycache, далее просто добавьте в блок импорта.

Основные возможности

  • Автоматика: автоматическая очистка устаревших элементов и возможность ее отключения.
  • Возможность ручного управления.
  • Безопасность: конкурентный доступ к данным возможен благодаря мьютексам.
  • Гибкость: кэш может хранить любые типы данных.

Использование

Создание кэша

С автоматической очисткой

Для создания нового экземпляра кэша используйте функцию Cacher, передавая интервал очистки в наносекундах.

Если требуется указать интервал в секундах/минутах/часах и т.д. - используйте множители из пакета time:

cache := candycache.Cacher(10 * time.Minute) // Очистка каждые 10 минут

Без автоматической очистки

Если автоматичская очистка не нужна - просто передайте параметром любое отрицательное число:

cache := candycache.Cacher(-1) // Кэш не будет очищаться автоматически

Добавление элемента

Для добавления элемента в кэш используйте метод Add:

cache.Add("key", "value", 5 * time.Minute) // Элемент будет считаться устаревшим через 5 минут

В случае, если по указанном ключу уже что-то хранится, оно будет заменено на новый элемент.

Получение элемента

Для получения элемента из кэша используйте метод Get:

value, found := cache.Get("key") // Получение значения по ключу "key"

Если элемент найден, то в переменную value будет записано значение, а в foundtrue. Если элемент не найден, то в found будет записано false, а значением вернется nil.

Удаление элемента

Для удаления элемента по ключу используйте метод Delete:

err := cache.Delete("key1")
if err != nil {
    fmt.Println("Ошибка:", err) // Не найдено записи по ключу
}

Элемент будет удален, не смотря на то, устаревший он или нет.