Break the data matrix. Explore what Redis has to offer.

Learn More

October 2018 – Edition #72

redis watch

A Newsletter About Everything Redis

Edition #72
October 30th, 2018

Editor’s Notes

Dateline: An Air Canada flight between Boston and Toronto.

Check One two… Check, Check… Is.. this thing on?

First, you might be wondering what happened to Redis Watch with the last publication being about 38.5 megaseconds ago. Also, surprise, I’m not Itamar, I’m Kyle. Itamar is taking the role of Redis Watch Editor Emeritus (At-Large) as he’s taken on different responsibilities in the company.

I guess first I should take a moment to introduce myself and set the stage. This is a little full-circle for me; I guess you could say that I got my start in the Redis community with this very newsletter. I had been using Redis since around, as best as I can recall, 2012. Then in 2014, the aforementioned Mr. Haber somehow found out about a little blog post I wrote on Medium and published it here. And I just kept on writing those blog posts and he kept on publishing them in this very newsletter. A little later on I joined Redis and now I’m leading Developer Relations. Finally, other things you should know about me: I live in Edmonton, Alberta, Canada and I have a tiny dog named Mr. Button. I will reference this later, don’t worry.

At any rate, I’m pleased to be putting this little publication together again.

Happy Redising,

Kyle Davis


Redis Trivia: In the modules API, Salvatore used 6-bit characters for the names of custom data types. 8-bit characters are just too extravagant and bourgeois for this API. Instead of hoarding those bits for ourselves we have redistributed them back to you, the people, for your data needs.


Redis 5.0

File under: releases, party-hat

Wooo hooo! 5.0 is here. Five point oh means Streams and a boat load of other enhancements & fixes. Have you played with Streams? If not you should check out the new documentation over on

TCP-Routing of Redis on Pivotal Cloud Foundry`

File under: cloud-foundry, ops

Richard Seroter writes an interesting article about running Redis under PCF – Redis is just an example here as we don’t run on your “normal” ports so a little config-fu is needed. Just a note though, Redis is actually a pretty common workload on PCF, despite our idiosyncratic port number.

Introduction to Redis streams with Python

File under: streams, snakey-programming

Charles Leifer, of walrus fame, has a nice write-up of Streams, in general, and how to take advantage of them in Python. I expect you’ll be seeing more of these type of pieces as Streams go GA in 5.0 and people start dealing with the language/client-level implications of streams.

C# GeoHash

File under: .net, geospatial

You might already know that Redis uses a sorted set to store geo values and it encodes longitude and latitude using the GeoHash algorithm. If you haven’t taken a look at how that works, I encourage you to look it up – super fascinating. OR, you could take a wjdavis5’s (no relation… I think) RedisGeoHash implementation which directly translates the Redis way of calculating the GeoHash into C#. There can be some wild differences between GeoHash is implemented in different languages which can cause non-1:1 results, so it’s nice to see a port that strives to align perfectly.

A Commentary on Comments

File under: cloud-foundry, ops

If you’ve ever had the occasion to read the Redis source code you know it’s pretty clean and well documented. I appreciate that. Salvatore wrote up his thinking behind comments.

/* It’s pretty insightful, TBH.*/

Personally, I diverge from him in a few places – I think there is a time/place for commenting on every line… change my mind.

Rate limiting with Lua and Redis

File under: Lua, rate-limiting

Rate limiting is one of those things you don’t think too much about until you really need it. Do yourself a favor and read about how Callr uses Lua & Redis to accomplish both the token bucket and leaky bucket algorithm for doing rate limiting.

Async tasks with Flask + Redis

File under: tasks, snakey-programming has a nice little guide on using Redis Queue in Python with Flask to manage asynchronous tasks. This type of write-up is awesome as, yeah, this type of functionality is a no-brainer for Redis but maybe not everyone has cracked the nut with Redis for themselves – it’s nice to see people talking about the tried and true uses of Redis.

Libraries and Tools

File under: Tools, .net
To be honest, I had not heard of Launch Darkly before but it sounds like an interesting way to manage feature deployments. Basically, you can hook up Redis to store feature flags as a write through cache so your .NET app will give some users a particular feature on some criteria. Got to admit, Redis does seem like a natural fit for this type of thing as you’ve got to be fast and available and we’ve got that in spades.



We’ll be at QCon San Francisco from November 5th to the 7th. Come by the booth and tell’em Kyle sent you and you’ll get a free Redis Geek shirt.

Are you a fan of fish and chips with mushy peas and Redis? Well, we won’t have fish, chips and peas but the host city for Redis Day London on Nov 15th sure has it all in large quantities. Come join Salvatore and the whole Redis gang for a jam packed day of Redis goodness. There are rumours of free umbrellas…

You should learn RediSearch and the best way to learn is through Redis University. A certain someone (who happens to run a certain newsletter) may be the instructor. The class starts Nov 27! Sign up today.

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



This newsletter was produced and distributed by Redis, Inc.

Redis, Inc. 700 E El Camino Real, Suite 250, Mountain View, CA 94041

RepositoryArchive | Subscribe | Follow on Twitter