Table of Contents
Content Error or Suggest an Edit
Notice a grammatical error or technical inaccuracy? Let us know; we will 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
Get Dragonfly
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
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.).
https://github.com/danielealbano/cachegrand
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 😊
- Till Kruss is the author of the Redis Cache plugin on the WordPress directory. Redis Object Cache – WordPress plugin | WordPress.org English (Canada)
- He also created Object Cache Pro https://objectcache.pro/
- And is working on Relay to improve PHP and Redis interactions https://relaycache.com/
- He also is a part of the WordPress Performance team working on Object Cache
- A podcast episode Taking On WordPress Cache Challenges with Till Krüss
I passed both projects along to him to see what his thoughts were on his Relay Discord.
Jordan: @Till have you seen https://github.com/dragonflydb/dragonfly
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 https://github.com/danielealbano/cachegrand 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.