candycache/README.md

34 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# ![Go](https://img.shields.io/badge/go-%2300ADD8.svg?style=for-the-badge&logo=go&logoColor=white) Candy Cache :candy:
**CandyCache** — это простой и эффективный кэш на языке Go, который позволяет хранить данные с ограниченным временем жизни (TTL).
## Установка
Для использования CandyCache в вашем проекте, установите его, используя **go get git.hikan.ru/serr/candycache**, далее просто добавьте в блок импорта.
## Основные возможности
- **Автоматика**: автоматическая очистка устаревших элементов и возможность ее отключения
- **Возможность ручного управления**
- **Безопасность**: конкурентный доступ к данным возможен благодаря мьютексам
- **Гибкость**: кэш может хранить любые типы данных
## Использование
### Создание кэша
Для создания нового экземпляра кэша используйте функцию **Cacher**, передавая интервал очистки в наносекундах. Если требуется указать TTL в секундах/минутах/часах и т.д. - используйте множители из пакета **time**:
```cache := candycache.Cacher(10 * time.Minute) // Очистка каждые 10 минут```
### Добавление элемента
Для добавления элемента в кэш используйте метод **Add**:
```cache.Add("key", "value", 5 * time.Minute) // Элемент будет храниться 5 минут```
В случае, если по указанном ключу уже что-то хранится, оно будет заменено на новый элемент.
### Получение элемента
Для получения элемента из кэша используйте метод **Get**:
```value, found := cache.Get("key") // Получение значения по ключу "key"```
Если элемент найден, то в переменную **value** будет записано значение, а в **found****true**. Если элемент не найден, то в **found** будет записано **false**, а значением вернется **nil**