mini-cache-ttl
v1.4.3
Published
*Простой, легковесный in-memory кэш с TTL (Time-To-Live) для Node.js и браузера.* Поддерживает локальные хранилища, централизованный сервер и интеграцию с express-session.
Readme
mini-cache-ttl
Простой, легковесный in-memory кэш с TTL (Time-To-Live) для Node.js и браузера. Поддерживает локальные хранилища, централизованный сервер и интеграцию с express-session.
Особенности
- Автоматическое удаление устаревших записей по TTL
- Несколько изолированных хранилищ через createStore()
- Готовый HTTP-сервер для централизованного кэша
- Клиент для работы с удалённым кэшем (createRemoteStore)
- Адаптер для express-session
- Нет внешних зависимостей (кроме Express для сервера)
Установка
npm install mini-cache-ttlБыстрый старт
Локальное использование
import cache from 'mini-cache-ttl';
cache.set('user:123', { name: 'Alice' }, 60); // TTL = 60 сек
console.log(cache.get('user:123')); // { name: 'Alice' }Изолированное хранилище
import { createStore } from 'mini-cache-ttl';
const sessionCache = createStore();
sessionCache.set('sid', 'abc123', 1800);Express Session Store
import session from 'express-session';
import { expressSessionStore } from 'mini-cache-ttl';
const MiniCacheStore = await expressSessionStore();
app.use(session({
store: new MiniCacheStore({ ttl: 3600 }),
secret: 'my-secret',
resave: false,
saveUninitialized: false
}));Удалённый кэш (клиент)
import { createRemoteStore } from 'mini-cache-ttl/client';
//token is not a required parameter
const sharedCache = createRemoteStore('http://localhost:4000', 'my-store','your_token');
await sharedCache.set('counter', 1, 60);
console.log(await sharedCache.get('counter')); // 1Запуск сервера
После установки:
# Варианты запуска
# Базовый запускы
npx mini-cache-ttl-server
# На порту 4000
npx mini-cache-ttl-server --port 4000
# С токеном
npx mini-cache-ttl-server -p 4000 -t my-secret-keyИли программно:
import { createServer } from 'mini-cache-ttl/server';
//token is not a required parameter
createServer({ port: 4000 ,token:'your_token'});Подключить монитор ресурсов
программно
import { createApp } from 'mini-cache-ttl/server';
import { monitor } from 'mini-cache-ttl/monitor';
const { app, stores } = createApp();
// Подключаем мониторинг
monitor(app, { stores });
app.listen(4000, () => {
console.log('✅ Кэш-сервер с мониторингом запущен на http://localhost:4000');
});CLI
npx mini-cache-ttl-server -p 4000 --monitor
# или
npx mini-cache-ttl-server -p 4000 -mПросмотреть монитор
Эндпоинты для просмотра статистики и состояния
/stats
/helth
Полный API
Все методы доступны как в локальном, так и в удалённом режиме:
| Метод | Описание | |--------|----------| |get(key)|Получить значение| |set(key, value, ttlSec?)|Установить значение с TTL| |update(key, value, ttlSec?)|Обновить, если ключ существует| |del(key)|Удалить ключ| |rename(oldKey, newKey)|Переименовать ключ| |keys()|Получить все действующие ключи| |size()|Количество ключей| |clear()|Очистить всё хранилище| |touch(key, ttlSec)|Продлить TTL| |has(key)|Проверить существование|
Демонстрация
Полный пример использования с двумя микросервисами и общим кэшем:
https://github.com/O9nix/mini-cache-ttl-demo
В демонстрации показано:
- Работа локального и общего кэша
- Веб-интерфейс для управления
- Совместное использование данных между сервисами
