Announcement

Free to view yesterday and today
Customer Service: cat_manager

Ristretto - 高性能 Go 内存缓存

Ristretto is a high-performance, memory-bound, concurrent cache written in Go, designed for applications requiring efficient caching with strict memory limits.

Go
Added on 2025年7月4日
View on GitHub
Ristretto - 高性能 Go 内存缓存 preview
6,182
Stars
406
Forks
Go
Language

Project Introduction

Summary

Ristretto is an open-source, high-throughput Go cache library optimized for memory efficiency and performance. It implements cutting-edge caching algorithms to deliver superior hit ratios compared to standard LRU or LFU caches.

Problem Solved

Traditional caches often struggle with efficiently managing memory and achieving high hit rates under heavy load, especially in concurrent environments. Ristretto addresses this by providing an advanced admission and eviction policy tailored for performance and memory control.

Core Features

Advanced Admission Policy

Based on the Cache with Optimal Replacement Policy (CORP) principles, offering near-optimal hit ratios.

Cost-Aware Eviction

Allows assigning costs to cache items, ensuring more valuable items are retained longer.

Thread-Safe and Concurrent

Designed for safe concurrent access from multiple goroutines without external locking.

Memory-Bound Operation

Strictly adheres to configured memory limits, making it suitable for memory-constrained environments.

Tech Stack

Go

使用场景

Ristretto is well-suited for various applications needing a robust and memory-efficient cache:

Database Query Caching

Details

Caching database query results to avoid repeated database calls for frequently requested data.

User Value

Significantly reduces database load and improves application response times.

API Response / Computation Result Caching

Details

Storing results from external API calls or computational results that are expensive to recompute.

User Value

Decreases latency and external service dependencies, enhancing application resilience.

Microservice State Management

Details

Maintaining small, frequently accessed state or configuration data across multiple requests or processes within a microservice.

User Value

Provides fast access to shared data, avoiding bottlenecks and serialization overhead.

Recommended Projects

You might be interested in these projects

junit-teamjunit-framework

JUnit is a widely used, open-source testing framework for the Java programming language and JVM-based languages. It provides tools and structure to write and run repeatable tests.

Java
67061560
View Details

Winds-StudioLeaf

Leaf is a high-performance, stable, and vanilla-friendly fork of PaperMC, designed for Minecraft server administrators who seek an optimized experience without sacrificing core gameplay mechanics or reliability.

Java
61993
View Details

milvus-iomilvus

Milvus is a high-performance, cloud-native vector database built for scalable vector ANN search.

Go
357973277
View Details