Хранилище данных в памяти для кэширования, работы со структурами данных и документами, векторного поиска и обмена сообщениями.
- Звёзды
- 2,524
- Форки
- 76
- Открытые issues
- 18
- Последний коммит
- 3 месяца назад
Что это?
Pogocache — кэширующий сервер, рассчитанный на низкую задержку и небольшую нагрузку на CPU при обработке запросов. Он принимает подключения по нескольким сетевым протоколам, включая Memcache, Valkey/Redis (RESP), HTTP и Postgres, поэтому к нему можно без изменений подключаться существующими инструментами и библиотеками, например curl, redis-cli и psql.
Pogocache можно также запускать во встроенном режиме. Самодостаточный файл pogocache.c можно напрямую скомпилировать в составе программы на C — тогда приложение сможет вызывать функции кеша, не обращаясь к сети. Возможности сервера включают TLS на отдельном порту, аутентификацию по паролю, настраиваемые ограничения памяти с вытеснением данных, опциональное сохранение в файл и шардированные хеш-таблицы с блокировками для каждого шарда.
Проект предназначен для 64-разрядных Linux и macOS и написан на C. В README приведены таблицы бенчмарков, сравнивающие его с Redis, Valkey, Dragonfly, Garnet и Memcache на одном типе инстанса AWS; результаты получены в собственной тестовой среде автора.
Ключевые возможности
- 01Принимает на одном сервере сетевые протоколы Memcache, RESP (Valkey/Redis), HTTP и Postgres.
- 02Можно скомпилировать в составе программы на C как один файл для внутрипроцессного кеширования.
- 03Поддерживает TLS, аутентификацию по паролю и настраиваемый maxmemory с вытеснением данных.
- 04Предоставляет опциональное сохранение в файл и истечение срока действия ключей по TTL.
- 05Использует шардированную хеш-таблицу с spinlock для каждого шарда и циклы обработки событий на epoll/kqueue.
Сценарии использования
- Заменить экземпляр Redis или Memcache в сервисе, чувствительном к задержкам, не меняя код клиента.
- Встроить быстрый кеш ключ-значение непосредственно в приложение на C или C++.
- Использовать curl или psql для быстрой проверки и изменения значений в кеше во время разработки.
Быстрый старт
- 1
Соберите программу pogocache из исходного кода
make - 2
Запустите сервер на localhost, порт 9401
./pogocache - 3
Подключитесь с помощью curl, чтобы сохранить и прочитать значение
curl -X PUT -d "my value" http://localhost:9401/mykey
Что важно знать
- Программа разработана и протестирована только для 64-разрядных Linux и macOS.
- В README не описана поддержка Windows.
Темы
Частые вопросы
- Что такое pogocache?
- Низколатентный кэширующий сервер на C с поддержкой протоколов Memcache, Redis/Valkey, HTTP и Postgres, который можно встроить в программу как один C-файл. Pogocache — кэширующий сервер, рассчитанный на низкую задержку и небольшую нагрузку на CPU при обработке запросов. Он принимает подключения по нескольким сетевым протоколам, включая Memcache, Valkey/Redis (RESP), HTTP и Postgres, поэтому к нему можно без изменений подключаться существующими инструментами и библиотеками, например curl, redis-cli и psql.
- pogocache можно использовать бесплатно? Какая у него лицензия?
- pogocache распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- pogocache всё ещё поддерживается?
- Обновлялся за последние 6 месяцев. Последний коммит в pogocache — 5 авг. 2026 г..
- Для чего можно использовать pogocache?
- Заменить экземпляр Redis или Memcache в сервисе, чувствительном к задержкам, не меняя код клиента. Встроить быстрый кеш ключ-значение непосредственно в приложение на C или C++. Использовать curl или psql для быстрой проверки и изменения значений в кеше во время разработки.
- Как установить pogocache?
- Соберите программу pogocache из исходного кода: make Запустите сервер на localhost, порт 9401: ./pogocache Подключитесь с помощью curl, чтобы сохранить и прочитать значение: curl -X PUT -d "my value" http://localhost:9401/mykey
- Где скачать pogocache?
- Исходный код и инструкции по установке — на GitHub: https://github.com/tidwall/pogocache
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
In-memory хранилище данных, совместимое по API с Redis и Memcached и задуманное как их прямая замена.
Распределённое надёжное key-value хранилище для критически важных данных распределённых систем на основе консенсуса Raft с gRPC API.
Графовая база данных, которая хранит смежность в виде разреженных матриц и выполняет запросы на OpenCypher; подходит для графов знаний и задач LLM и GraphRAG.
Совместимый с Redis и Valkey внутрипамятный сервер «ключ—значение» на Rust со встроенным полнотекстовым и векторным поиском.
Библиотека для управления асинхронным состоянием и загрузки данных в веб-приложениях с поддержкой React, Vue, Svelte и Solid.