awesome-repositories.com
Blog
MCP
awesome-repositories.com

Découvrez les meilleurs dépôts open-source grâce à notre recherche par IA.

ExplorerRecherches sélectionnéesAlternatives open sourceLogiciels auto-hébergésBlogPlan du site
ProjetÀ proposNotre méthodologiePresseServeur MCP
Mentions légalesConfidentialitéConditions d'utilisation
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
coocood avatar

coocood/freecache

0
View on GitHub↗
5,399 stars·406 forks·Go·MIT·7 vues

Freecache

freecache est une bibliothèque de stockage clé-valeur en mémoire concurrente haute performance pour les applications Go. Il fonctionne comme un cache de taille fixe qui gère de grands volumes de données tout en éliminant la surcharge du garbage collection grâce à l'utilisation de mémoire pré-allouée et de stockage hors-tas (off-heap).

Le système maintient une empreinte mémoire prévisible en utilisant une allocation mémoire fixe et une gestion de buffer circulaire, où les nouvelles entrées écrasent automatiquement les données les plus anciennes une fois la capacité atteinte. Il réduit en outre la contention entre les lecteurs et les écrivains simultanés via un accès concurrent par verrouillage segmenté (lock-striped).

La bibliothèque inclut une interface serveur qui implémente un sous-ensemble du protocole Redis, permettant aux clients externes de communiquer avec le cache en utilisant des commandes standard et le pipelining. Le cycle de vie des données est géré via l'expiration time-to-live et des politiques d'éviction automatisées.

Features

  • Go In-Memory Caches - Provides a high-performance in-memory key-value store for Go applications designed to eliminate garbage collection pauses.
  • Cache Eviction Policies - Utilizes cache eviction policies based on expiration timestamps and LRU algorithms to maintain memory limits.
  • Concurrent Caches - Provides a thread-safe concurrent cache designed for high-concurrency environments with simultaneous reader and writer access.
  • Least Recently Used Caches - Implements a fixed-size cache that discards the oldest or least-recently-used entries when capacity limits are reached.
  • Circular Memory Buffers - Utilizes a circular memory buffer to automatically overwrite the oldest data when the fixed cache capacity is reached.
  • Off-Heap Memory Managers - Allocates data outside the managed heap to eliminate garbage collection overhead and prevent runtime pauses.
  • Slab Allocators - Uses slab allocators with fixed-size chunks to minimize memory fragmentation and ensure a predictable footprint.
  • Fixed Memory Buffers - Constrains memory usage to a preallocated fixed size to prevent application crashes and manage data via eviction.
  • Memory-Limited Caches - Implements memory-limited caching by capping the total byte size through strictly limited preallocated memory.
  • Lock-Striped Sharding - Employs lock-striped sharding to divide the data set and reduce contention among simultaneous readers and writers.
  • Concurrent Data Structures - Provides concurrent data structures that ensure thread-safe operations during simultaneous read and write access.
  • TTL Expiration Management - Provides TTL expiration management to automatically remove stale cache entries based on timestamps.
  • Redis Client Interfaces - Implements a Redis-compatible interface allowing external clients to communicate using standard Redis commands and pipelining.
  • Redis Protocol Parsers - Integrates a Redis protocol parser to allow external clients to communicate via standard Redis commands.
  • Protocol Servers - Implements a server interface that supports a subset of Redis commands and pipelining for external communication.
  • Time-To-Live Expirations - Implements time-to-live expirations to automatically remove stale cache entries and keep data current.
  • Caching Libraries - Zero-GC cache library.

Historique des stars

Graphique de l'historique des stars pour coocood/freecacheGraphique de l'historique des stars pour coocood/freecache

Recherche par IA

Explorez plus de dépôts awesome

Décrivez vos besoins en langage naturel — l'IA classe des milliers de projets open source sélectionnés par pertinence.

Start searching with AI

Alternatives open source à Freecache

Projets open source similaires, classés selon le nombre de fonctionnalités partagées avec Freecache.
  • dgraph-io/ristrettoAvatar de dgraph-io

    dgraph-io/ristretto

    6,932Voir sur GitHub↗

    Ristretto is a high-performance in-memory cache and concurrent key-value store for Go applications. It provides a thread-safe memory store that manages strict memory bounds and employs probabilistic set filters to reduce lookup overhead. The system is distinguished by an admission-policy cache that utilizes frequency sketches and cost-based eviction to maximize hit ratios. It minimizes contention and improves throughput through the use of striped ring buffers and concurrent map sharding. The project covers a broad range of data management capabilities, including time-based expiration, item f

    Go
    Voir sur GitHub↗6,932
  • isaacs/node-lru-cacheAvatar de isaacs

    isaacs/node-lru-cache

    5,895Voir sur GitHub↗

    node-lru-cache is a key-value store for Node.js that implements a memory-limited cache. It prevents memory exhaustion by capping the total number of items or total byte size, automatically evicting the least-recently-used items to maintain these limits. The project provides specialized caching patterns, including time-to-live durations to ensure data freshness and a stale-while-revalidate mechanism that serves expired content while asynchronously fetching updates in the background. It also includes diagnostic tools for monitoring cache hits, misses, and eviction metrics through operational st

    JavaScript
    Voir sur GitHub↗5,895
  • hashicorp/golang-lruAvatar de hashicorp

    hashicorp/golang-lru

    5,091Voir sur GitHub↗

    This is a thread-safe in-memory cache library for Go that automatically evicts the least recently used items when capacity is reached. It provides a fixed-size memory cache designed to maintain a constant memory footprint by removing the oldest entries as new data arrives. The system includes an eviction manager that executes custom callbacks when entries are purged to facilitate resource cleanup. It also supports time-based expiration, allowing for the automatic removal of items after a specified time-to-live duration. The library covers general caching capabilities including cache inspecti

    Go
    Voir sur GitHub↗5,091
  • patrickmn/go-cacheAvatar de patrickmn

    patrickmn/go-cache

    8,828Voir sur GitHub↗

    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

    Gocachegolibrary
    Voir sur GitHub↗8,828
Voir les 30 alternatives à Freecache→

Questions fréquentes

Que fait coocood/freecache ?

freecache est une bibliothèque de stockage clé-valeur en mémoire concurrente haute performance pour les applications Go. Il fonctionne comme un cache de taille fixe qui gère de grands volumes de données tout en éliminant la surcharge du garbage collection grâce à l'utilisation de mémoire pré-allouée et de stockage hors-tas (off-heap).

Quelles sont les fonctionnalités principales de coocood/freecache ?

Les fonctionnalités principales de coocood/freecache sont : Go In-Memory Caches, Cache Eviction Policies, Concurrent Caches, Least Recently Used Caches, Circular Memory Buffers, Off-Heap Memory Managers, Slab Allocators, Fixed Memory Buffers.

Quelles sont les alternatives open-source à coocood/freecache ?

Les alternatives open-source à coocood/freecache incluent : dgraph-io/ristretto — Ristretto is a high-performance in-memory cache and concurrent key-value store for Go applications. It provides a… isaacs/node-lru-cache — node-lru-cache is a key-value store for Node.js that implements a memory-limited cache. It prevents memory exhaustion… hashicorp/golang-lru — This is a thread-safe in-memory cache library for Go that automatically evicts the least recently used items when… patrickmn/go-cache — go-cache is a thread-safe, in-memory cache library for Go that stores arbitrary objects with per-item expiration… memcached/memcached — Memcached is a high-performance, distributed, in-memory key-value storage and request routing engine. It functions as… tporadowski/redis — Redis is a high-performance in-memory key-value store that functions as a distributed cache, message broker, and NoSQL…