From df3c44d40d39044c9b582f26d36437197c4d0881 Mon Sep 17 00:00:00 2001 From: user_2i Date: Wed, 9 Sep 2026 14:41:18 +0500 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20?= =?UTF-8?q?=D0=BE=D0=BF=D0=B8=D1=81=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=BF=D1=80?= =?UTF-8?q?=D0=BE=D0=B5=D0=BA=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..7f9521b --- /dev/null +++ b/README.md @@ -0,0 +1,44 @@ +# 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 + +--- + +## Структура проекта +