candycache/README.md

42 lines
2.6 KiB
Markdown
Raw Normal View History

2025-01-06 01:02:55 +03:00
# ![Go](https://img.shields.io/badge/go-%2300ADD8.svg?style=for-the-badge&logo=go&logoColor=white) Candy Cache :candy:
2025-01-06 00:44:03 +03:00
2025-01-06 01:21:27 +03:00
**$${\color{red}Сandy Cache}$$** — это простой и эффективный кэш на языке Go, который позволяет хранить данные с ограниченным временем жизни (TTL).
2025-01-06 01:00:23 +03:00
## Установка
2025-01-06 01:13:25 +03:00
Для использования CandyCache в вашем проекте, установите его, используя **go get git.hikan.ru/serr/candycache**, далее просто добавьте в блок импорта.
2025-01-06 01:00:23 +03:00
## Основные возможности
- **Автоматика**: автоматическая очистка устаревших элементов и возможность ее отключения
2025-01-06 01:05:48 +03:00
- **Возможность ручного управления**
2025-01-06 01:04:52 +03:00
- **Безопасность**: конкурентный доступ к данным возможен благодаря мьютексам
2025-01-06 01:13:25 +03:00
- **Гибкость**: кэш может хранить любые типы данных
## Использование
2025-01-06 01:14:07 +03:00
### Создание кэша
2025-01-06 01:13:25 +03:00
2025-01-06 01:18:35 +03:00
Для создания нового экземпляра кэша используйте функцию **Cacher**, передавая интервал очистки в наносекундах.
2025-01-06 01:19:02 +03:00
2025-01-06 01:18:35 +03:00
Если требуется указать TTL в секундах/минутах/часах и т.д. - используйте множители из пакета **time**:
2025-01-06 01:17:53 +03:00
```go
cache := candycache.Cacher(10 * time.Minute) // Очистка каждые 10 минут
```
2025-01-06 01:13:25 +03:00
2025-01-06 01:14:07 +03:00
### Добавление элемента
2025-01-06 01:13:25 +03:00
Для добавления элемента в кэш используйте метод **Add**:
2025-01-06 01:17:53 +03:00
```go
cache.Add("key", "value", 5 * time.Minute) // Элемент будет храниться 5 минут
```
2025-01-06 01:13:25 +03:00
В случае, если по указанном ключу уже что-то хранится, оно будет заменено на новый элемент.
2025-01-06 01:14:07 +03:00
### Получение элемента
2025-01-06 01:13:25 +03:00
Для получения элемента из кэша используйте метод **Get**:
2025-01-06 01:17:53 +03:00
```go
value, found := cache.Get("key") // Получение значения по ключу "key"
```
2025-01-06 01:13:25 +03:00
Если элемент найден, то в переменную **value** будет записано значение, а в **found****true**. Если элемент не найден, то в **found** будет записано **false**, а значением вернется **nil**