# hdt3213/godis

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/hdt3213-godis).**

_How this analysis was created: the description and tags below were written by an AI model that read this project's README and public documentation pages; stars, license and language come straight from the GitHub API. The model does not read the source code._

3,836 stars · 602 forks · Go · GPL-3.0

## Links

- GitHub: https://github.com/HDT3213/godis
- Homepage: https://www.cnblogs.com/Finley/category/1598973.html
- awesome-repositories: https://awesome-repositories.com/repository/hdt3213-godis.md

## Topics

`cluster` `go` `godis` `golang` `kv-cache` `redis` `redis-cluster` `redis-server`

## Description

Godis is a Redis-compatible in-memory database and distributed key-value store. It functions as a replicated data store and distributed message broker, implementing the Redis protocol to manage complex data structures in memory.

The system provides a geospatial indexing engine for proximity-based queries and distance calculations. It ensures high availability and data durability through master-slave replication and write-ahead logging.

The project covers a wide range of capabilities including the management of strings, hash maps, lists, and sorted sets. It supports distributed data clustering for scaling throughput, real-time publish-subscribe messaging, and atomic transactions for data consistency. Persistence is handled via snapshot-based recovery and append-only files.

## Tags

### Data & Databases

- [Key-Value Stores](https://awesome-repositories.com/f/data-databases/key-value-stores.md) — Functions as a high-performance Redis-compatible key-value store for managing application state in memory. ([source](https://github.com/HDT3213/godis/blob/master/commands.md))
- [Redis Compatible Stores](https://awesome-repositories.com/f/data-databases/redis-compatible-stores.md) — Implements the Redis protocol to provide a high-performance, compatible in-memory key-value store.
- [Distributed Key-Value Stores](https://awesome-repositories.com/f/data-databases/data-engineering-infrastructure/data-persistence-storage/specialized-storage-engines/distributed-key-value-stores.md) — Functions as a consistent and replicated distributed key-value store for high-throughput data management.
- [Data Replication](https://awesome-repositories.com/f/data-databases/data-replication.md) — Implements data replication mechanisms to synchronize data across nodes, ensuring high availability and durability.
- [Disk Persistence](https://awesome-repositories.com/f/data-databases/disk-persistence.md) — Persists in-memory data to non-volatile disk storage using append-only files and snapshots. ([source](https://github.com/hdt3213/godis))
- [Distributed Database Clusters](https://awesome-repositories.com/f/data-databases/distributed-database-clusters.md) — Uses a distributed database architecture to organize nodes into coordinated groups for horizontal scaling.
- [Distributed Key-Value Sharding](https://awesome-repositories.com/f/data-databases/distributed-key-value-sharding.md) — Spreads key-value pairs across a cluster of nodes to enable distributed scaling and availability. ([source](https://cdn.jsdelivr.net/gh/hdt3213/godis@master/README.md))
- [Complex Data Structure Stores](https://awesome-repositories.com/f/data-databases/in-memory-data-stores/complex-data-structure-stores.md) — Provides a high-performance in-memory store for complex types including hashes, sets, and lists. ([source](https://github.com/hdt3213/godis))
- [In-Memory State Management](https://awesome-repositories.com/f/data-databases/local-state-management/in-memory-state-management.md) — Manages complex data structures and atomic transactions in volatile memory for low-latency state tracking.
- [Primary-Replica Replication](https://awesome-repositories.com/f/data-databases/primary-replica-replication.md) — Uses a primary-replica replication architecture to ensure high availability and read scalability across nodes.
- [Write-Ahead Logging](https://awesome-repositories.com/f/data-databases/write-ahead-logging.md) — Ensures data durability and crash recovery by recording every state change to a write-ahead log.
- [Atomic Transactions](https://awesome-repositories.com/f/data-databases/atomic-transactions.md) — Allows grouping multiple commands into atomic transactions that either complete entirely or revert on failure. ([source](https://github.com/hdt3213/godis))
- [Point-in-Time Database Snapshots](https://awesome-repositories.com/f/data-databases/data-governance-modeling/data-management-governance/backup-recovery-systems/database-backup-restoration/point-in-time-database-snapshots.md) — Provides point-in-time recovery by periodically saving the entire in-memory dataset to binary snapshots.
- [Key Expiration Management](https://awesome-repositories.com/f/data-databases/data-governance-modeling/data-management-governance/data-lifecycle-retention/data-lifecycle-management/key-expiration-policies/access-link-expiration/content-expiration-policies/storage-key-expirations/key-expiration-management.md) — Manages key expiration using time-to-live values to automatically purge expired data from memory.
- [Atomic Transactions](https://awesome-repositories.com/f/data-databases/database-management-systems/database-systems-management/connection-transaction-management/atomic-transactions.md) — Implements atomic transactions to ensure multiple operations execute as a single indivisible unit for data consistency.
- [Geospatial Indexes](https://awesome-repositories.com/f/data-databases/geospatial-query-mapping/geospatial-indexes.md) — Provides geospatial indexing for efficient proximity-based queries and radius searches.
- [Hash Map Storage](https://awesome-repositories.com/f/data-databases/hash-map-storage.md) — Stores hash maps that associate keys with field-value pairs for structured record representation. ([source](https://github.com/HDT3213/godis/blob/master/commands.md))
- [Ordered List Management](https://awesome-repositories.com/f/data-databases/ordered-list-management.md) — Implements ordered list management supporting push, pop, and trim operations at both ends. ([source](https://github.com/HDT3213/godis/blob/master/commands.md))
- [Geospatial Search](https://awesome-repositories.com/f/data-databases/search-indexing/geospatial-search.md) — Enables search capabilities based on geographical coordinates and distance parameters. ([source](https://github.com/HDT3213/godis/blob/master/commands.md))
- [Sorted Sets](https://awesome-repositories.com/f/data-databases/sorted-sets.md) — Supports sorted sets that store unique elements ordered by score for ranking and range retrieval. ([source](https://github.com/HDT3213/godis/blob/master/commands.md))
- [String Data Structures](https://awesome-repositories.com/f/data-databases/string-data-structures.md) — Provides optimized storage and atomic operations for string and binary data. ([source](https://github.com/HDT3213/godis/blob/master/commands.md))
- [Unordered Unique Collection Management](https://awesome-repositories.com/f/data-databases/unordered-unique-collection-management.md) — Manages unordered collections of unique elements with support for set intersections, unions, and differences. ([source](https://github.com/HDT3213/godis/blob/master/commands.md))

### Networking & Communication

- [Publish-Subscribe Messaging](https://awesome-repositories.com/f/networking-communication/communication-platforms-services/messaging-notification-systems/messaging-services/message-broker-infrastructure/publish-subscribe-messaging.md) — Provides low-latency communication between distributed services through a publish-subscribe messaging model. ([source](https://github.com/HDT3213/godis/blob/master/commands.md))
- [Message Brokers](https://awesome-repositories.com/f/networking-communication/message-brokers.md) — Acts as a message broker facilitating asynchronous communication and decoupling between distributed clients.
- [Pub-Sub Messaging](https://awesome-repositories.com/f/networking-communication/pub-sub-messaging.md) — Implements a real-time pub-sub message broker to decouple producers from consumers via channels.

### Software Engineering & Architecture

- [Data Sharding](https://awesome-repositories.com/f/software-engineering-architecture/distributed-systems-scaling/slot-based-cluster-scaling/data-sharding.md) — Distributes data across multiple nodes using partitioning to scale throughput and capacity.

### DevOps & Infrastructure

- [Distributed Database Deployment](https://awesome-repositories.com/f/devops-infrastructure/managed-cluster-orchestration/test-cluster-deployers/distributed-cluster-provisioners/distributed-database-deployment.md) — Provides automated provisioning of high-availability clusters consisting of coordinator and worker nodes. ([source](https://github.com/hdt3213/godis))

### Part of an Awesome List

- [Caching Libraries](https://awesome-repositories.com/f/awesome-lists/data/caching-libraries.md) — Redis-compatible server implementation.
- [Database Engines](https://awesome-repositories.com/f/awesome-lists/data/database-engines.md) — High-performance Redis-compatible server and cluster.
- [Database Systems](https://awesome-repositories.com/f/awesome-lists/data/database-systems.md) — Listed in the “Database Systems” section of the Awesome Go awesome list.
- [Databases](https://awesome-repositories.com/f/awesome-lists/data/databases.md) — High-performance Redis-compatible server and cluster.
