Giter VIP home page Giter VIP logo

Comments (1)

fogfish avatar fogfish commented on June 26, 2024

Hello,

The cache support addition of multiple entires per key via prepend or append api. However, it does not really behave as Redis in this cases. It would apply eviction for entire group at once if application has not touched the key for awhile. Same time, the group would grow infinitely.

The duplicate bag is not supported for individual cache segments. I am afraid it would not be even possible to make it because of an overhead during cache I/O operations.

You can implement desired solution using apply function. This function executes you own function within the cache context thus you can maintain list of items and evict old items on write. It would be interesting to play around this and measure performance (what does it cost to copy "lists" between segments). Actually apply is generic implementation of append/prepend. I'd propose you to validate your use-case with apply then we can either create a new data type to cache or extends append/prepends with subset eviction.

BTW, If you solution is classical time-base rolling window then you can simply use append/prepend out of the box together with simple logic of generating multiple key names based on the current time span.

Please let me know what do you think?

from cache.

Related Issues (19)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.