Alternatives to Redis, Dragonfly and Cachegrand

Content Error or Suggest an Edit

If you notice a grammatical error or technical inaccuracy, then please let us know and we will update it and give you credit!

What’s Dragonfly?

There was a post on the GridPane Community forum (members only) talking about Dragonfly, which is a drop-in replacement for Redis. Here’s a quote from their site.

A modern, scalable in-memory datastore
Dragonfly is a robust, ultra fast in-memory datastore, fully compatible with Redis™* and Memcached. Dragonfly scales vertically to handle millions of QPS and hundreds of GBs of memory on a single instance

Get Dragonfly

What is Cachegrand

cachegrand is an open-source fast, scalable and secure Key-Value store able to act as Redis drop-in replacement, designed from the ground up to take advantage of modern hardware vertical scalability, able to provide better performance and a larger cache at lower cost, without losing focus on distributed systems. To be able to achieve these goals, cachegrand implements a set of components tailored to provide the needed performance and the ability to scale-up on multi-core and multi-cpu (NUMA) servers capable of running 64bit software including the most recent ARM-based SoC platforms (e.g. AWS Graviton, Raspberry PI 4 with 64bit kernel, etc.).

Object Caching and its current state

Right now there is really only one person working on Object Caching for WordPress. And that’s Till Krüss who is from where I grew up in British Columbia, Canada 😊

I passed both projects along to him to see what his thoughts were on his Relay Discord.

Jordan: @Till have you seen

Till: I have, their support for Redis is pretty minimal if you check their compatibility table. Cool project tho.

Jordan: Yea, that seems to be the only issue, also saw Looks like they all use the io-uring API

Till: We’ve looked into that for Relay as well.

Drop-in Replacement for Redis?

Looking at both Dragonfly and Cachegrand, the API support looks decent and would only really be an issue if you use a function they haven’t implemented yet.

Dragonfly for instance supports all Memcache commands except for one. Theoretically, you could use the LSCache plugin and their Memcache object caching support.

The only issue is that you also require an updated Linux kernel, specifically 5.10 or later.

Dragonfly runs on linux. It uses relatively new linux specific io-uring API for I/O, hence it requires Linux version 5.10 or later. Debian/Bullseye, Ubuntu 20.04.4 or later fit these requirements.

I think I might spin a new instance up and try this all out.