Skip to content

Feature Request: Client-side LFU / TinyLFU Cache Support to Reduce Redis Load #960

Open

Description

@zepto-abhilashg

We are using rueidis as the Redis client in a high-throughput Go service where Redis is heavily used as a shared cache. While Redis itself supports LFU eviction, we are observing significant load on Redis due to repeated reads for a small set of highly frequent keys.

To reduce Redis QPS and tail latency, we are looking for a client-side in-memory cache within rueidis that can retain the most frequently accessed keys, similar to LFU or TinyLFU-based admission/eviction, before falling back to Redis.

Problem Statement
• Many requests repeatedly fetch the same hot keys from Redis
• Redis LFU helps with eviction but does not reduce network round trips
• High QPS on Redis increases: Network utilization, Tail latency, Cost
• Existing simple LRU caches are prone to cache pollution under bursty traffic

Activity

  1. rueian commented on Feb 18, 2026

    @rueian
    Collaborator

    Hi @zepto-abhilashg, you may try otter with our NewSimpleCacheAdapter. We may want to replace the current default LRU implementation with otter in the future.

  2. zepto-abhilashg commented on Feb 18, 2026

    @zepto-abhilashg
    Author

    sure. Checking it.

  3. rueian commented on Jun 13, 2026

    @rueian
    Collaborator

    Hi @zepto-abhilashg, we're considering using Otter as the default implementation. I'd be interested to hear your thoughts, especially if you've already had experience working with it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions