Repolode
tidwall

tidwall/pogocache

用 C 语言编写的低延迟缓存服务,兼容 Memcache、Redis/Valkey、HTTP 和 Postgres 协议,也可作为单个 C 文件嵌入项目。

可替代:RedisMemcached

Star
2,524
Fork
76
未关闭 Issue
18
最近提交
3个月前

这是什么?

Pogocache 是一个面向低延迟和低 CPU 开销的缓存服务。它同时支持 Memcache、Valkey/Redis(RESP)、HTTP 和 Postgres 协议,因此 curl、redis-cli、psql 以及常见的客户端库无需修改即可直接连接。

它也可以以嵌入方式使用:独立的 pogocache.c 文件可直接编译进 C 程序,应用通过函数调用访问缓存,不经过网络。服务端功能包括独立端口的 TLS、密码认证、可配置的内存上限与淘汰策略、可选的文件持久化,以及带分片锁的哈希表。

项目面向 64 位 Linux 和 macOS,使用 C 语言实现。仓库中的基准测试对比了它与 Redis、Valkey、Dragonfly、Garnet 和 Memcache 在同一 AWS 实例上的表现,结果来自作者自己的测试环境。

核心功能

  • 01同一服务端同时接受 Memcache、RESP(Valkey/Redis)、HTTP 和 Postgres 协议。
  • 02可将单个 C 文件编译进程序,实现进程内缓存。
  • 03支持 TLS、密码认证,以及可配置的最大内存与淘汰策略。
  • 04提供可选的文件持久化和基于 TTL 的过期机制。
  • 05采用分片哈希表与分片自旋锁,网络层基于 epoll 或 kqueue。

适用场景

  • 在对延迟敏感的服务中替换 Redis 或 Memcache,无需修改客户端代码。
  • 在 C 或 C++ 应用内直接嵌入高速键值缓存。
  • 开发调试时用 curl 或 psql 快速读写缓存值。

快速上手

  1. 1

    从源代码构建 pogocache 程序

    make
  2. 2

    在本地 9401 端口启动服务器

    ./pogocache
  3. 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 还在维护吗?
半年内有更新。pogocache 最近一次提交是在 2026年8月5日。
pogocache 适合用来做什么?
在对延迟敏感的服务中替换 Redis 或 Memcache,无需修改客户端代码。 在 C 或 C++ 应用内直接嵌入高速键值缓存。 开发调试时用 curl 或 psql 快速读写缓存值。
pogocache 怎么安装和运行?
从源代码构建 pogocache 程序: make 在本地 9401 端口启动服务器: ./pogocache 使用 curl 存取一个值进行测试: curl -X PUT -d "my value" http://localhost:9401/mykey
在哪里获取 pogocache?
源代码和安装说明在 GitHub 上:https://github.com/tidwall/pogocache

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目