domashka-1/README.md

45 lines
1.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# LRU Cache Server
Высоконагруженный in-memory key-value сервер с алгоритмом вытеснения LRU и текстовым протоколом на C++.
---
## Описание проекта
Система кэширования данных типа "ключ-значение" (аналог Redis/Memcached) для ускорения доступа к часто запрашиваемым данным в высоконагруженных приложениях.
**Особенности:**
- Алгоритм вытеснения LRU (Least Recently Used)
- Конкурентный доступ к данным
- Множество TCP-подключений
- Текстовый протокол
---
## Функциональные требования
| Команда | Описание |
|---------|----------|
| `SET key value [ttl]` | Сохранить пару с опциональным временем жизни |
| `GET key` | Получить значение или "MISS" |
| `DEL key` | Удалить пару |
| `STATS` | Показать статистику (хиты/промахи, RPS) |
| `CLEAR` | Очистить весь кэш |
| `HELP` | Показать список доступных команд |
---
## Технологический стек
- **Язык:** C++17/20
- **Компилятор:** GCC 11+, Clang 14+, MSVC 2022
- **Система сборки:** CMake 3.10+
- **Сеть:** POSIX sockets (epoll/kqueue)
- **Хранилище:** std::unordered_map + std::list для LRU
- **Многопоточность:** std::thread + std::mutex + std::atomic
---
## Структура проекта