Giter VIP home page Giter VIP logo

Comments (1)

polarathene avatar polarathene commented on June 5, 2024 2

TL;DR: Instead of Freecache, you may want to consider looking into Ristretto which appears to be a better alternative; or at a higher level (and potential Redis replacement / alternative), Olric.


You might prefer to use Ristretto instead (released back in 2019), from the devs behind Badger(K/V DB). They have a pretty decent article on caching in Go that introduces Ristretto and compares it to existing cache solutions including Freecache.

They also wrote a previous article on caching with Go that compared Freecache to a few others and identified the state of Go caching, expressing various concerns they had when choosing a cache solution (they ended up creating Ristretto instead of course).


I am not a Go dev, but was looking into all of this when evaluating to use another Go project designed for HTTP caching called Souin. They at an earlier point used Ristretto (and perhaps still do, I haven't looked into Souin source much), but made some change to switch to Badger at a later date.

Badger IIRC will keep keys in memory and values on disk. In more recent versions it changed to also keep values under 1MB per key in memory as well (I can't recall if these also persist to disk, I think they do as that was important for me with the HTTP cache decision).

Souin also offers an alternative KV store that also can act as an in-memory cache (it's memory only and can work in a distributed fashion IIRC) called olric. That's also a Go project that can run embedded within Chihaya. I'm not sure if that would be more desirable for you over what a lower level package like Ristretto would offer, but perhaps it would be more suitable for Chihaya (could replace Redis for HA?).

You can find the author of Olric compare his project to Ristretto here:

Olric is a distributed, embeddable data structure server. It currently implements distributed map and distributed topic data structures. Because of its consistency model, Olric is useful as a distributed cache library for your Go applications. It also supports a few eviction policies including LRU.

I have a little info about Ristretto library of DGraph. It is not distributed. So Olric is completely different and it can be comparable with groupcache.

from chihaya.

Related Issues (20)

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.