Radish: Dig Deep Into Redis

It’s no secret that we’re big fans of Redis here at
thoughtbot. Redis has great data structures, plenty of fantastic libraries for
interacting with it, and is plain fast. Several questions kept arising though
every time we deployed Redis to Hoptoad and several
client projects: What’s actually going on inside of Redis? What data is being
stored, how much, and how fast?

Our answer to these questions is a new Redis analysis and monitoring service,
Radish.

Radish works side-by-side with your existing Redis instances in your hosting
environment. All you need to do is start a daemon which handles connecting to
Redis and sending data out to Radish over HTTPS.

Picking out spikes in Redis operations is helpful to correlate to web traffic,
or lack thereof! We also split out the types of commands for reads vs. writes
(GET vs SET, for
instance). “Other” commands are usually admin/maintenance actions such as
INFO.

We also track several stats about your Redis instance, such as average commands
per second, memory usage, changes since last save, and keyspace size. A growing
keyspace and memory size is a constant effort when maintaining a Redis instance,
and Radish can help you track it and keep it to a manageable level. Tracking
changes since last save has also helped us figure out that we don’t
SAVE our Redis data enough, which could have
dire effects if the Redis instance was to go down.

Breakdown of high-frequency commands, keys, and namespaces assist in determining
what your instance is processing. Learn what keys are being written to and when.
Highlight the areas of your code that might be wasting memory on your Redis
instance. Radish makes it possible to show what might be blocking Redis from
serving requests since it is single-threaded.

Radish is already helping us understand what our Redis instances are up to
without a lot of custom scripts and temporary hacks. Sign
up, get it running with your Redis instances, and let us
know how it goes!

Huge thanks to my fellow robots for helping me
getting this idea off the ground. Our beta testers also deserve kudos for
hammering us with live traffic and exposing lots of fun bugs.