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

Descubre los mejores repositorios open-source con nuestra búsqueda potenciada por IA.

ExplorarBúsquedas curadasAlternativas open-sourceSoftware autohospedableBlogMapa del sitio
ProyectoAcerca deCómo clasificamosPrensaServidor MCP
Aviso legalPrivacidadTérminos
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
coocood avatar

coocood/freecache

0
View on GitHub↗
5,399 estrellas·406 forks·Go·MIT·7 vistas

Freecache

freecache es una librería de almacenamiento clave-valor en memoria concurrente de alto rendimiento para aplicaciones Go. Funciona como una caché de tamaño fijo que gestiona grandes volúmenes de datos mientras elimina la sobrecarga de recolección de basura mediante el uso de memoria preasignada y almacenamiento fuera del heap (off-heap).

El sistema mantiene una huella de memoria predecible mediante la utilización de asignación de memoria fija y gestión de buffer circular, donde las nuevas entradas sobrescriben automáticamente los datos más antiguos al alcanzar la capacidad. Además, reduce la contención entre lectores y escritores simultáneos mediante acceso concurrente con bloqueo por franjas (lock-striped).

La librería incluye una interfaz de servidor que implementa un subconjunto del protocolo Redis, permitiendo que clientes externos se comuniquen con la caché utilizando comandos estándar y pipelining. El ciclo de vida de los datos se gestiona mediante la expiración de tiempo de vida (TTL) y políticas de desalojo automatizadas.

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.

Historial de estrellas

Gráfico del historial de estrellas de coocood/freecacheGráfico del historial de estrellas de coocood/freecache

Búsqueda con IA

Explora más repositorios increíbles

Describe lo que necesitas en lenguaje sencillo: la IA clasifica miles de proyectos open-source curados por relevancia.

Start searching with AI

Alternativas open-source a Freecache

Proyectos open-source similares, clasificados según cuántas características comparten con Freecache.
  • dgraph-io/ristrettoAvatar de dgraph-io

    dgraph-io/ristretto

    6,932Ver en 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
    Ver en GitHub↗6,932
  • isaacs/node-lru-cacheAvatar de isaacs

    isaacs/node-lru-cache

    5,895Ver en 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
    Ver en GitHub↗5,895
  • hashicorp/golang-lruAvatar de hashicorp

    hashicorp/golang-lru

    5,091Ver en 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
    Ver en GitHub↗5,091
  • patrickmn/go-cacheAvatar de patrickmn

    patrickmn/go-cache

    8,828Ver en 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
    Ver en GitHub↗8,828
Ver las 30 alternativas a Freecache→

Preguntas frecuentes

¿Qué hace coocood/freecache?

freecache es una librería de almacenamiento clave-valor en memoria concurrente de alto rendimiento para aplicaciones Go. Funciona como una caché de tamaño fijo que gestiona grandes volúmenes de datos mientras elimina la sobrecarga de recolección de basura mediante el uso de memoria preasignada y almacenamiento fuera del heap (off-heap).

¿Cuáles son las características principales de coocood/freecache?

Las características principales de coocood/freecache son: 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.

¿Qué alternativas de código abierto existen para coocood/freecache?

Las alternativas de código abierto para coocood/freecache incluyen: 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…