A Newsletter About Everything Redis

Issue #29
January 29th, 2015

Editor’s Note

It’s pretty neat that this issue’s number and day of month converge and give a sort of meaningfullness to this issue of Redis Watch. The rest of the this issue is far from mundane 🙂

Redis Trivia: There’s a Chilean rapper who calls himself Redis: https://soundcloud.com/redis-2 <- he’s actually quite good 🙂


int main(int argc, char **argv) {

Redis-as-a-Service Performance Benchmark (10 minutes to read)

A report by Vladimir Starostenkov of @Altoros who had benchmarked the performance of different Redis providers on AWS. Included in the benchmark are the results from testing Redis Cloud, ElastiCache, openredis, RedisGreen and Redis To Go. The testing methodology employed several simulated workload patterns to differentiate between the solutions’ capabilities. Send me an email and ask for the full report if you don’t want to fill the download form 🙂

Redis core implementation #ItsNotWhatYouSayButHowYouSayIt (15 minutes to read)

Roman Lenetov @leventov runs a blog about key-value stores (that makes him my kind of guy to begin with so I’m now the 6th subscriber to it :)) In this post he takes a look at Redis’ internals and reviews the data structures used to manage its internal state. Salvatore’s responses are in this mailing list thread: https://groups.google.com/d/msg/redis-dev/blzNXKjsBCk/pYxbkdzhoxMJ.

These two pieces contain a lot of nice hardcore technical details so getting to their bottoms requires non-trivial understanding and prior knowledge. Regardless of the specifics, I like discussions this one – Roman’s work is admirable because of its honesty and the effort invested, regardless of his opinions and analysis. That and the polite tone of his work go a long way to establish the credit that the reader gives him, in this case @antirez and @mattsta, who provides open, honest and to-the-point answers. Since this isn’t your oh-so-popular-twitter-flame-war style of rapport, the participants actually engage in a civilized discussion and real conclusions are drawn. Yep, that’s cool. That’s open source at its best.

P.S. my partner, who’s ancestors came from Germany, had taught me that “der tone macht die musik”. By happy coincidence, there’s a great contrasting example of how feedback **shouldn’t** be shared, in a growing chain of issues that get mysteriously deleted (SPAM?) from the GIFHub: 2325, 2333 and 2338. I’m not neccesarily against what the vocative Robot7811 is trying to say, it’s the “how” he says it that seeps through my laptop’s screen like some vile fluid that’s covering my fingers and soaking through my skin to poison my heart. The (sometimes funny) sarcasm and childish insults that Robot dishes so genereously, even if being the result of genuine frustration and contractual obligations, only provoke the wrong feelings and render any input he offers near useless (regardless the sizes of egos that may or may not be involved).

Our Discourse Hosting Configuration (10 minutes to read)

Michael Brown @Supermathie from @discourse gives us a tour of Discourse’s non-cloud hosting set up. The company moved away from using shared Redis databases (for all the right reasons) and is now using dedicated Redis processes, managed by a piece of FOSS (redismux) they made that routes connections to database by password and that can also spin up new databases. Their Redis server is aptly named “Tie Fighter Prime”!

How to develop a high-load system based on Node.js, Cassandra & Redis (5 minutes to read)

Alexander Pastukhov from @magora_systems shares some juicy stack details in a short piece.

Why we don’t have benchmarks comparing Redis with other DBs (6:37:09 minutes to read)

A classic @antirez piece, largely in response to the @Aerospike Lessons Learned – Benchmarking NoSQL on the AWS Cloud benchmark by Lynn Langit @lynnlangit. I am a Redis Geek (“fanboy” :)) so of course I’m biased and my opinions (UPDATE: here) are very similar to Salvatore’s: “To test Redis doing GET/SET is like to test a Ferrari checking how good it is at cleaning the mirror when it rains.”

RedisConf 2015 (1 day event, March 5th)

Looks like everyone will be there, sort of like a big ol’ HGETALL 🙂 Ping me so we can meet at the event.

#include “redis.h”

hiredis 0.12.0

#C #foss

After a 2-year hiatus, Redis’ C client gets a new version from Matt Stancliff @mattsta that consists of multiple improvements (the new version, not Matt).

Logging to Redis using Spring Boot and Logback

#SpringBoot #howto

Florian Hopf @fhopf provides a succinct knowledge dump on wiring the three together.

Redis Hashes and .NET

#dotNET #howto

“Using hashes with StackExchange.Redis can be a bit pain in the ass, but building flexible framework around Hashes are worth it.” courtesy of Panu Oksala @PanuOksala.

API Throttling in ServiceStack with Redis LUA

#dotNET #Lua #howto

Cory Taylor @cctaylor shows how to write a ServiceStack plugin that uses Redis counters and Lua magic to throttle operations.

Redis AOF Parser

#NodeJS #foss

“Founder of @nviteEvam Dudla @evandudla – pulls Redis operations out of AOF files with this module.


#CPP #foss

“Modern, asynchronous, and wicked fast C++11 client for Redis by Hayk Martirosyan.

Demo: How Redis Sentinel Failover Works (7:51)

#Redis #video

A short video demonstrating failover using Sentinel.

Writeable Foreign Data Wrapper for Redis

#PostgreSQL #foss

Postgres allows interaction with external data stores via the Foreign Data Wrapper (FDW) mechanism. Leon Dang from @nahannisys took the existing Redis FDW and had extended it to include write (INSERT, UPDATE, DELETE) functionality, thus making it extremely useful.


#Solr #foss #howto

This @Sematext-provided plugin can be used to boost a Solr engine as shown in the blog post that describes a social network use case: http://blog.sematext.com/2015/01/13/solr-redis-plugin-use-cases-and-performance-tests/.


#Ruby #foss

A simple way to access Redis connections without global variables by @HapsMe.


Erik August Johnson @8EJ3: ‘”Redis is now ready to exit, bye bye…” Bye Redis. PS: I love you.’

Marcin @marcinw: “First project using Redis, pretty pleased with it so far…”
<- Postmodern @postmodern_mod3: “@marcinw Redis is one of those rare technologies that lives up to it’s hype. Also checkout Riak.”

Peleus Uhley @peleusuhley: … “assembly-esque queries (Redis)” <- nicely put 🙂

Adrian Salazar @joseadrisalazar: “Hmm… Time to go to bed but I don’t wanna… Socket.io and Redis why U so addictive?”

Taylor Weibley @themcgruff: “uptime_in_days:740 … redis you go girl”

Jordi Marín Valle @jordimarinvalle: “redis + lua = redis with super powers. Kudos @antirez, I have discovered a new infinite #redis world playing with #lua scripting.”

Franz Bettag @fbettag: “I’ve had it with “big data” databases. Going back to #redis and #postgresql. When everything sucks, you go back to basics.”

Ankit Solanki @_anks: “Redis is an amazing piece of software, it always just works.”

John Beieler @johnb30: “So this redis thing is pretty cool.”

Dave Syer @david_syer: “As long as redis is still running in the background (use the fig.yml if you like to start it) then the system will work.” <- in a Minimal Viable Product approach kind of way, sure, but for anything half-serious you want proper high availability.

Paul Burdick @reedmaniac: “Just finished a completely Redis set based search for Nonprofits based off programs/categories and city/state. And darn is it fast.”

Errol Flynn @waylonflinn: “rm /var/lib/redis/dump.rdb
goodbye old friend”

Questions?  Feedback?  Anything you want to share?  Email or tweet me – I’m highly available 🙂

This newsletter was produced and distributed by Redis Labs, Inc.
Redis Labs, Inc. 5201 Great America Parkway, Suite 320, Santa Clara, CA 95054

Archive | Subscribe | Follow on Twitter