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

Learn More

July 2019 – Edition #78

/* Some Basics */
table.responsive {
width: 100%;
height: 115px;
table.responsive th {
background-color: #ddd;

/* Hide cell labels by default */
table.responsive td .label {
display: none;

/* Apply the contained CSS only to narrow viewports via a Media Query */
@media screen and (max-width:640px) {
/* Hide the table header */
table.responsive thead {
display: none;

/* Vertically stack the table elements */
table.responsive tbody th,
table.responsive tbody td {
display: block;

/* Make all cell column span tags visible & change them from inline-block to block */
table.responsive td span {
display: block;

/* Make all cell labels look like column headers */
table.responsive td .label {
background-color: #ddd;
font-weight: bold;
text-align: center;
@media screen and (max-width:500px) {
width: 100% !important;
margin-left: -10px !important;
margin-left:10px !important;
margin-right:10px !important;

h1 {
color: #b62411;
font-weight: 700;
h2 {
color: #b62411;
font-weight: 700;
margin-bottom: 20px;
h3 {
font-weight: 700;
padding-bottom: 0px;
margin-bottom: 0.3em;
margin-top: 1.5em;
a {
color: #b62411;
text-decoration: none;
h3 a {
color: #b62411;
text-decoration: none;
h3 code {
padding: 2px 4px 0px;
border: 1px solid rgb(221, 221, 221);
background-color: rgb(248, 248, 248);
border-radius: 3px;
pre { white-space: pre-wrap; }
blockquote {
margin: 1rem 0px;
border-left: 4px solid #B62411;
padding: 0px 15px;
color: rgb(119, 119, 119);
blockquote > :last-child { margin-bottom: 0px; }
blockquote > :first-child { margin-top: 0px; }


A Newsletter About Everything Redis

Edition #78
July 30th, 2019

Editor’s Notes

Dateline: Air Canada Flight 500, somewhere over Michigan

I just left Chicago, a beautiful city. But, chi-town, we’ve got to talk. It was too hot. Once it gets above 35℃/95℉, I’m done. My brain stops functioning and I cannot GET, I cannot SET. It was so hot I felt like my eyeballs and teeth were sweating from the time I landed until I got comfortably in the air headed back to the north. The worst, though, was working on my laptop. The wrist sweat from resting my hands on either side of the trackpad was so bad that I wondered if it would start flowing and lead to water damage in the logic board.

But all that sweat was for a good reason – in Chicago, I was talking to many wonderful Redis Geeks in the making at one of our workshops. I think I did a good job, but then again, this whole thing might be some sort of heat-stroke induced hallucination. Maybe I’m actually laid out on the sidewalk, wearing a “Redis Geek” shirt, muttering about Lua string concatenation. If you find me in this state, please put me in a cab and send it to O’Hare.

Happy Redising,

Kyle Davis

Redis Trivia: “Redis Server” is an anagram for “Is ERR Served?” which, ironically, is a question you ask when calling Redis from a Node.js application with Redis.

Redis Day NYC Highlights

A Quantitative Trader’s Perspective


Mauro Calderara explains how he uses Redis at Citadel to power and coordinate quantitative trading applications — from Pub/Sub and custom math in Redis modules, up to reading and changing Redis’ source code to optimize for very narrow use cases. If you’re a big Redis geek, you’re going to love this unconventional use of Redis: it’s hot (the spicy kind of hot, thank goodness).

Serverless Event Driven Architecture with Redis


Paulo gives a great talk about how Redis is under the hood of FaastRuby, a serverless Ruby platform. I think he wins the award for best use of the Hotline Bling meme in a technical presentation.



Making Sense of Redis’ SCAN Cursor

Herman Banken geeks out about the trick behind SCAN cursors. Have you ever wondered how a single number can ensure you don’t miss items even during a table resizing? I’ll give you a hint: SCAN queries are stateless, so that number is not some kind of search ID. Are you burning with curiosity yet?

How to Use Redis with Python – Real Python

This very thorough guide covers everything from setting up your first Redis server, to data design adjustments from Python to Redis. It’s good stuff to know, especially when your app servers are melting the hosting machine. With a touch of caching, all will cool down again.

Client side caching in Redis 6

It’s good to keep hot keys in Redis, and even better to copy scorching hot keys directly in your application’s local memory. Redis 6 will make it easy to set up a local caching scheme, thanks to a new key-change notification system.

Creating an Express.js app using Ejs, Express-session with Redis

You won’t break a sweat following this tutorial that shows how to use the popular Node.js web framework Express.js, Redis as a session store and embedded Javascript templates together.

Heroku Chatbot with Celery, WebSockets, and Redis

This article has a few things I like (Redis for sessions, Redis as a message broker and  WebSockets), but also something I’m only lukewarm on (Django). While some people may like Django, it was never my cup of tea. I’d rather steep my tea in a framework that is less opinionated.

Explain Redis Like I’m Five

This one is a little unusual for this newsletter. I’m not too hot on the responses in this thread on — they kinda work, but only for limited uses of Redis. What I want you to do is go over and write your own Redis ELI5, and really heat up the discourse over on

Porting Redis to WebAssembly with Clang/WASI

It seems like you can’t go to any developer forum without running into WASM these days. Some would say it’s truly a hot topic. Now, because web assembly is a virtual machine, it generates more waste heat than bare-metal Redis (expect a ~? slow down), but it is still a promising and interesting port.

Libraries & Tools

RedisBloom has matured and now supports two new probabilistic data structures! Hot take: Bloom for yes/no, Top-K for most frequent/popular and Count-Min-Sketch for counts.

RedisTimeSeries – v1.0 General Availability of RedisTimeSeries

Hot off the presses: The RedisTimesSeries module is ready for action with a general availability launch. If you have a burning need to collect data indexed and queried by time, then you should not wait to check this out.



Three months ago two security issues were reported in Redis. I fixed them silently, after three (almost four) months I’m releasing the details:
The issues were fixed already in Redis 5, 4 and 3 (the releases of 18th of March).


So for our “What’s new in Redis” column, welcome to Redis diskless replicas, a just merged feature contributed by @AgraOran some time (a lot) ago, but now finally merged after a set of changes making the feature safe in all the operation cases. Read this thread to know more.


So excited to talk about optimizations using #GraphQL and #redis over the past 6 months @Cleartrip. #reactindia #Goa


My sky miles account is really warming up because I’m traveling so much lately. You should come to one of our workshops if you’re near Portland, OR, Charlotte, NC, Dallas or Denver, and hear me extol the virtues of the database with a fire-engine red logo. You know what else could cause a fire? Running servers that don’t have proper cooling when you are, say, using just 40 of them to get to 200 million ops per second on Redis Enterprise. What won’t catch fire (because it’s booth cool and efficient) is using the newest addition to RedisBloom, TopK, to estimate the highest frequency elements in a data set.

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


This newsletter was produced and distributed by Redis, Inc.

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

RepositoryArchive | Subscribe | Follow on Twitter