基于 RocksDB 存储、兼容 Redis 协议的分布式 NoSQL 键值数据库,旨在降低内存成本并提升容量。
- Star
- 6,136
- Fork
- 1,170
- 未关闭 Issue
- 89
- 最近提交
- 22天前
这是什么?
PikiwiDB(Pika)是一个兼容 Redis 协议的 KV 存储系统,支持 string、hash、list、zset、set、geo、hyperloglog、pubsub、bitmap、stream 等常用数据结构。它以 RocksDB 持久化全部数据,并缓存热数据,因此容量受磁盘限制,而不是受内存限制。
它面向 Redis 内存成本高或单线程处理成为瓶颈的场景。部署上可以采用一主多从的 slaveof 模式,支持全量与增量同步;也可以搭配 Codis 集群,通过增减分组实现弹性伸缩。仓库中提供从 Redis 迁移数据的工具。
项目支持在 CentOS、Ubuntu 和 macOS 上使用 C++17 源码编译,并提供官方 Docker 镜像。监控指标可通过配套的 exporter 输出。
核心功能
- 01兼容 Redis 协议及常用数据结构
- 02使用 RocksDB 持久化数据并缓存热数据
- 03支持主从复制,包含全量与增量同步
- 04可通过 Codis 集群增减分组实现弹性扩缩容
- 05提供 Docker 镜像和 Linux、macOS 编译脚本
适用场景
- 存放超出 Redis 内存容量的大规模数据
- 降低大规模 KV 业务的内存硬件成本
- 在不修改应用代码的前提下,将现有 Redis 迁移到基于磁盘的存储
快速上手
- 1
克隆源代码
git clone https://github.com/OpenAtomFoundation/pikiwidb.git - 2
使用构建脚本编译
./build.sh - 3
使用示例配置启动 PikiwiDB
./output/pika -c ./conf/pika.conf
使用前须知
- 从源码编译需要支持 C++17 的 gcc/g++ 9 或更高版本,以及 cmake 3.18 或更高版本。
- README 列出的支持平台仅有 CentOS、Ubuntu 和 macOS。
标签
#redis#key-value-store#rocksdb#nosql#database-cluster#persistent-storage#nosql-data-storage#nosql-databases#pikiwidb#redis-interfaces
常见问题
- pikiwidb 是什么?
- 兼容 Redis 协议、以 RocksDB 为存储引擎的持久化 KV 数据库,适合超出内存容量的大数据量场景。 PikiwiDB(Pika)是一个兼容 Redis 协议的 KV 存储系统,支持 string、hash、list、zset、set、geo、hyperloglog、pubsub、bitmap、stream 等常用数据结构。它以 RocksDB 持久化全部数据,并缓存热数据,因此容量受磁盘限制,而不是受内存限制。
- pikiwidb 可以免费使用吗?用的什么许可证?
- pikiwidb 以 BSD-3-Clause 许可证开源。用于商业产品前,请先确认许可证条款。
- pikiwidb 还在维护吗?
- 活跃维护中。pikiwidb 最近一次提交是在 2026年10月16日。
- pikiwidb 适合用来做什么?
- 存放超出 Redis 内存容量的大规模数据 降低大规模 KV 业务的内存硬件成本 在不修改应用代码的前提下,将现有 Redis 迁移到基于磁盘的存储
- pikiwidb 怎么安装和运行?
- 克隆源代码: git clone https://github.com/OpenAtomFoundation/pikiwidb.git 使用构建脚本编译: ./build.sh 使用示例配置启动 PikiwiDB: ./output/pika -c ./conf/pika.conf
- 在哪里获取 pikiwidb?
- 源代码和安装说明在 GitHub 上:https://github.com/OpenAtomFoundation/pikiwidb
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
4491+6 本周690C++Apache-2.0更新于 昨天
从 Redis 分支而来的高性能键值数据结构服务器,适用于缓存与实时负载场景。
2.8万+70 本周1518CBSD-3-Clause更新于 昨天
用 C 语言编写的低延迟缓存服务,兼容 Memcache、Redis/Valkey、HTTP 和 Postgres 协议,也可作为单个 C 文件嵌入项目。
252576CMIT更新于 3个月前
与 Redis 和 Memcached API 兼容的内存数据存储,可直接替换两者使用。
3.2万+12 本周1294C++Other维护活跃更新于 昨天
内存数据存储,可用作缓存、数据结构服务器、文档数据库、向量数据库和消息代理。
7.7万+153 本周2.5万COther维护活跃更新于 昨天
面向 .NET 的 Redis 客户端库,也可连接 Valkey、Garnet、AWS ElastiCache 等兼容 RESP 协议的服务器。
62061562C#MIT维护活跃更新于 昨天