ristretto
badger
Our great sponsors
ristretto | badger | |
---|---|---|
19 | 30 | |
5,299 | 13,347 | |
1.3% | 1.2% | |
6.1 | 7.0 | |
22 days ago | 11 days ago | |
Go | Go | |
Apache License 2.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
ristretto
-
Otter, Fastest Go in-memory cache based on S3-FIFO algorithm
1. Unfortunately, ristretto has been showing hit ratio around 0 on almost all traces for a very long time now and the authors don't respond to this in any way. Vitess for example has already changed it to another cache. Here are two issues about it: https://github.com/dgraph-io/ristretto/issues/346 and https://github.com/dgraph-io/ristretto/issues/336. That is, ristretto shows such results even on its own benchmarks. You can see it just by running hit ratio benchmarks on a very simple zipf distribution from the ristretto repository: https://github.com/dgraph-io/ristretto/blob/main/stress_test.... On this test I got the following:
-
S3 Express Is All You Need
That's exactly how Userify[0] used to work. (when it was Python; now that it's a Go app, we do the caching in memory using Ristretto[1]).
0. https://userify.com (team ssh key management/sudo authz)
-
Theine - High performance in-memory cache
I also do some hit ratio benchmarks and Theine's results are much better than Ristretto. See results in README: https://github.com/Yiling-J/theine-go#hit-ratios
-
Python deserves a good in-memory cache library!
If you know Caffeine(Java)/Ristretto(Go)/Moka(Rust), you know what Theine is. Python deserves a good in-memory cache library.
-
VCache: A Simple In-Memory Cache Library
Thanks for sharing. There are a lot of options for embedded in-memory caches: https://github.com/dgraph-io/ristretto https://awesome-go.com/caches/ Do you have any comparisons or details on how your project has a different approach?
-
Cacheme: Asyncio cache framework with multiple storages and thundering herd protection
I made Cacheme years ago, which support redis and synchronous API only. Then I switch to Go and found that there are some awesome cache projects in Go(ristretto, gocache...), I also made my own Cacheme go version: cacheme-go. After trying asyncio and type hint, I think it's time to rewrite my old Cacheme.
-
Show HN: Zcached, in-memory key-value cache wire-compatible with memcached
zcached is an in-memory key-value cache exposing a memcached ASCII protocol-compatible interface, built on pluggable cache engines like Ristretto and freecache [0].
It's not performance-competitive with memcached, especially at higher thread counts. That said, it achieves about 1.1M ops/s, but at significantly higher P99 and P999 latency (as measured by memtier). See [1] and [2] for benchmark results from my 7950x-based workstation.
Disclaimer: This is a hobby project created for fun while hacking over the holidays. zcached is not a commercial product and never will be. Don't use it in production; consider this a technology demo more than anything.
I don't expect the source code to build outside of my environment, but for those interested in playing with it, binary artifacts are available at [3]. Try `zcached --address tcp:localhost:11211`.
[0] https://github.com/dgraph-io/ristretto, https://github.com/coocood/freecache
- What is the coolest Go open source projects you have seen?
-
Quitting Dgraph Labs
While I never used dgraph, I do use badger and ristretto and am similarly in a bind over their long-term survival (moreso badger than ristretto)...
-
Recommendation for Key/Value storage
There are also different packages used as a wrapper on top of the Go map based on what your requirements are (storing a lot of data) https://github.com/allegro/bigcache or (need performance) https://github.com/dgraph-io/ristretto. For basic use-cases, the standard Go map should be enough. Just keep in mind whether you need concurrent access to your data structure, in which case you should guard your map with a mutex .
badger
-
Anytype helper crashed
github.com/dgraph-io/badger/v3/table.OpenTable(0xc000bb4000, {0x0, 0x1, 0x200000, 0x0, 0x0, 0x3f847ae147ae147b, 0x1000, 0x0, 0x0, ...})
- What would be some database with extreme raw performance? (details in)
-
GORM
I' see that I'm also set to check out BadgerDB next. https://github.com/dgraph-io/badger
-
Polygon: Json Database System designed to run on small servers (as low as 16MB) and still be fast and flexible.
Some example of embeddable database could be genji, badger and boltdb
-
Butter from two CoWs: making a key-value store with btrfs
As I mentioned in a comment above you could probably just use AgageDb (Rust implementation of Badger which is a single file high performance KVP store. Turn off all of its built-in transactional behaviour and see how fast it runs on BTRFS using reflinks instead.
-
Building a Log-Structured Merge Tree in Go
Badger: Fast key-value DB in Go (GitHub)
-
Is there a nice embedded json db, like PoloDB (Rust) for Golang
I use Badger a lot, it doesn’t do much but it’s fast
- Best packages?
- What's the big deal about key-value databases like FoundationDB ands RocksDB?
-
badger VS ZoneTree - a user suggested alternative
2 projects | 22 Aug 2022
What are some alternatives?
go-cache-benchmark - Cache benchmark for Golang
goleveldb - LevelDB key/value database in Go.
BigCache - Efficient cache for gigabytes of data written in Go.
buntdb - BuntDB is an embeddable, in-memory key/value database for Go with custom indexing and geospatial support
stretto - Stretto is a Rust implementation for Dgraph's ristretto (https://github.com/dgraph-io/ristretto). A high performance memory-bound Rust cache.
bolt
moka - A high performance concurrent caching library for Rust
bbolt - An embedded key/value database for Go.
parquet-go - Go library to read/write Parquet files
nutsdb - A simple, fast, embeddable, persistent key/value store written in pure Go. It supports fully serializable transactions and many data structures such as list, set, sorted set.
IceFireDB - @IceFireLabs -> IceFireDB is a database built for web3.0 It strives to fill the gap between web2 and web3.0 with a friendly database experience, making web3 application data storage more convenient, and making it easier for web2 applications to achieve decentralization and data immutability.
go-cache - An in-memory key:value store/cache (similar to Memcached) library for Go, suitable for single-machine applications.