34 个仓库
High-performance databases for simple key-value data retrieval.
Explore 34 awesome GitHub repositories matching part of an awesome list · Key-Value Stores. Refine with filters or upvote what's useful.
etcd is a distributed key-value store and configuration store designed to maintain a consistent set of data across a cluster of nodes. It functions as a reliable registry for storing and synchronizing critical settings and metadata used by distributed applications. The system implements the Raft consensus algorithm to ensure data consistency and leader election across servers. To protect data transfers and verify node identities, it utilizes a network security layer based on mutual TLS and client certificates. Its capabilities cover distributed configuration management, cluster state synchro
Reliable distributed key-value store for critical system data.
Consul is a distributed coordination service and service mesh tool used for service discovery, health monitoring, and cluster state management across dynamic networks. It provides a platform for locating network addresses of services and managing traffic across distributed infrastructure using DNS and HTTP interfaces. The project distinguishes itself through multi-datacenter network orchestration, enabling the federation of services across different regions using mesh gateways. It secures communication via a service mesh architecture that employs identity-based authorization and mutual TLS en
Distributed key-value store for service discovery and configuration.
Redisson is a Java library and Redis client that functions as a distributed Java object mapper, caching provider, and locking framework. It maps Java collections and concurrency primitives to distributed implementations backed by Redis and Valkey, providing synchronous, asynchronous, and reactive APIs for interacting with these data stores. The project distinguishes itself by providing a comprehensive suite of distributed coordination tools, including a locking framework for managing semaphores and countdown latches across multiple application nodes. It also serves as a distributed messaging
A feature-rich Redis client for Java with distributed object support.
TiKV is a cloud-native distributed transactional key-value store and storage engine. It provides a distributed database designed for horizontal scalability and strong consistency across a cluster of physical nodes. The system uses a Raft-based consensus mechanism to maintain data availability and state synchronization. It ensures ACID compliance for distributed transactions through a two-phase commit workflow and manages data distribution via multi-Raft sharding. The engine handles massive datasets using automated range splitting and cluster load balancing to distribute data across different
Distributed key-value database powered by Rust.
Badger is an embeddable key-value store written in Go that provides persistent data storage for byte keys and values. It is a persistent database that utilizes a tiered LSM tree storage model to optimize disk storage and retrieval efficiency. The system features an ACID transaction engine that ensures data integrity through serializable snapshot isolation and multi-version concurrency control. It also provides an encrypted key-value store with data-at-rest encryption and a managed encrypted key registry to secure stored information. The engine covers a broad set of capabilities including hig
Embeddable, persistent, and fast key-value database.
Bolt is a single-file embedded key-value store for Go applications. It is an ACID transactional database that organizes data in B+trees on disk to provide efficient sorted key retrieval and range scans. The system uses a memory-mapped model to map the database file directly into the process address space for fast random-access reads. The project distinguishes itself through a multi-version concurrency control architecture that allows multiple simultaneous readers to access a consistent snapshot of data without blocking a writer. It employs a single-writer multi-reader locking model and uses a
Embedded key-value database for Go applications.
Dice is a low-latency key-value store based on Valkey that functions as a hierarchical storage engine. It combines a high-speed memory store with a tiered cache system to manage data across multiple storage levels. The system extends memory capacity by implementing a disk-backed cache that automatically persists evicted items to disk and restores them during cache misses. This storage tiering balances retrieval speed and operational cost by distributing data between fast memory and slower disk storage. The engine includes a query subscription service that monitors specific data patterns and
Implements a high-performance data store utilizing the Valkey protocol for key-value management.
Tile38 is an in-memory geospatial database that uses the Redis protocol for communication and query execution. It serves as a distributed spatial store for points and polygons, featuring high availability through leader-follower replication and disk-based persistence. The system includes a real-time geofencing engine that monitors virtual geographic boundaries and triggers webhooks when objects enter or exit specified areas. It further distinguishes itself with an embedded Lua scripting engine for server-side data transformations and a built-in vector tile server for efficient map visualizati
Geolocation data store with spatial indexing and geofencing.
go-cache is a thread-safe, in-memory cache library for Go that stores arbitrary objects with per-item expiration timestamps. It provides a concurrent key-value store where multiple goroutines can safely read and write shared cached data without external synchronization, using a mutex-guarded map for access control. The library distinguishes itself through its expiration management and optional disk persistence. Each cached item carries its own time-to-live, and a background goroutine periodically purges expired entries. The cache can serialize its entire contents to disk using Go's gob encodi
In-memory key-value cache for single-machine applications.
This is a Golang client library for interacting with a cloud native distributed messaging system. It provides the necessary tools for Go applications to exchange messages using publish-subscribe and request-reply patterns, as well as specialized clients for managing persistent streams and distributed storage. The library includes a JetStream client for durable message streaming and replay, a Key-Value store client for managing distributed state with versioning and watchers, and an Object Store client for the storage and retrieval of large binary files via chunked delivery. The implementation
Provides access to a chronological log of values and delete operations associated with specific keys.
Pebble is an embedded key-value storage engine written in Go, designed as a library that provides durable, write-optimized data persistence directly within applications. It organizes data using a log-structured merge-tree (LSM-tree) structure, where writes are first buffered in an in-memory skiplist memtable and persisted to a write-ahead log before being flushed to block-based SSTable files on disk. The engine supports atomic batch commits, configurable write synchronization, and automatic background compaction that merges and rewrites sorted runs to reclaim space and maintain read performanc
Reads stored values by key, returning the associated data and a handle for resource cleanup.
FastStream is an asynchronous Python framework designed for building event-driven microservices. It provides a unified abstraction layer for interacting with various message brokers, enabling developers to manage event production and consumption through a consistent interface while maintaining access to native provider-specific features. The framework centers on a decorator-based routing model that binds application logic directly to broker topics, supported by a built-in dependency injection container that resolves resources at runtime. The framework distinguishes itself through its deep int
Persists data in distributed buckets where keys map to subjects for historical revision retrieval.
RoseDB 是一个嵌入式键值数据库和日志结构化存储引擎。它作为一个基于库的数据库,在应用进程内运行,提供本地数据持久化,而无需单独的数据库服务器。 该项目实现了 Bitcask 风格的存储,利用仅追加 (Append-only) 日志格式来最大化写入吞吐量并最小化寻道时间。它通过将多个读写操作分组为单个原子单元来确保数据一致性。 存储架构依赖于内存键索引进行常量时间查找,并使用基于段的文件管理来处理数据压缩和磁盘空间回收。
Fast embedded key-value database supporting multiple data types.
BuntDB is an embedded key-value store for Go applications, providing in-memory storage with optional disk persistence. It structures data using a B-tree for ordered key-value access and an R-tree for spatial indexing, allowing both range scans and geometric intersection queries. Support for indexing on nested JSON document fields enables efficient lookups by values within JSON objects, and per-key time-to-live (TTL) expiration automatically removes stale entries. The store uses copy-on-write transaction isolation, ensuring each transaction sees a consistent snapshot and changes are applied at
Fast, embeddable, in-memory key-value store for Go.
Riak 是一个去中心化的 NoSQL 键值存储,专为高可用性和容错性而设计。它是一个 Dynamo 风格的分布式数据库,利用一致性哈希和最终一致性在节点集群中扩展数据。 该系统作为地理复制数据存储运行,在多个物理位置同步数据,以提供灾难恢复并在区域性中断期间保持可用性。它采用多主复制模型,允许向集群中的任何节点进行写入。 该平台涵盖了广泛的功能领域,包括去中心化集群协调、高可用性数据管理和大规模数据过期。它通过基于法定人数的一致性和写入验证来管理数据持久性,同时利用专门的数据结构自动合并并发更新。
Decentralized, fault-tolerant key-value datastore.
Get your data in RAM. Get compute close to data. Enjoy the performance.
Efficient NoSQL database and Lua application server.
A simple, fast, embeddable, persistent key/value store written in pure Go. It supports fully serializable transactions and many data structures such as list, set, sorted set.
Embeddable persistent key-value store supporting complex data structures.
Example code from the book
Source code and examples accompanying a practical guide to Redis.
Most advanced key-value database written in Go, extremely fast, compatible with LSM tree and B+ tree.
High-performance key-value storage using LSM and B+ tree structures.
High-performance, columnar, in-memory store with bitmap indexing in Go
In-memory columnar store with bitmap indexing and zero-alloc querying.