A Newsletter About Everything Redis birthday Happy 7th Birthday

Edition #63
February 4th, 2016

#include "i.h"

NEWS FLASH: A present from antirez for Redis' birthday100 more of those BITFIELDs.

Here's to another u4(b0101) magnificent years 🙂

Happy birthday,

Redis Trivia: for each n in {3, 6} print(n^2-1) # coincidence? I think not.

Be social, tweet about the 7th Redis birthday edition of Redis Watch: Happy Birthday Redis! I'm reading Redis Watch #63: https://redislabs.com/redis-watch-archive/63

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

Is Redlock safe? (1 hour of undistributed reading +/-[clock skew])

This is Salvatore Sanfilippo @antirez's rebuttal to Martin Kleppmann @martinkl's "How to do distributed locking", which is, in turn, a critique of the former's distributed lock algorithm for Redis, a.k.a. Redlock. Distributed systems shoptalk always generates a stir and Martin compiled a summary that at https://storify.com/martinkl/redlock-discussion, which includes this gem by Julia Evans @b0rk's "TIL: clock skew exists".

The binary search of distributed programming (10 minutes to read)

An offshoot of the item above in which Salvatore Sanfilippo @antirez is inspired to use Redis (or any other data store that satisfies two conditions), a majority and a variation on known algorithms for solving the problem of generating monotonically growing IDs.

OR How I Vim: Salvatore Sanfilippo via How I Vim @howivim


An important addition to the upcoming GEO API that enables pagination and set operations on the search's results.

RedisLabs/geo.lua #Lua #foss

I've put together a few GEO-related helper scripts to test some ideas. This is still very much WIP (the next version is almost a complete rewrite) so any suggestions/feature/etc is welcome 🙂 BTW, Documentation Driven Development is awesome.

Saving memory in Redis with MessagePack and Lua scripts (worth every second)

Adrien Moreau/de Montgon @adrienmo did an outstanding job with this article because it explains how to elegantly solve a seemingly complex problem in a way that that's similar to how winning the jackpot should you feel: reduce the data's footprint, minimize network traffic and prevent race conditions. And use Lua 🙂

Redis, put your socks on! (<1 minute to read) #HOWTO #ProTip

If you're using Redis as a local cache – that is, on the same server as your application – you should really move to using UDS (Unix Domain Socket) instead of the network stack, as demonstrated by Olav A. Mjelde @olavamjelde's numbers.

OH Ben Nadel @BenNadel > Every time I interact with #Redis, it just makes me happy. Something about the simplicity of the API – it's joyous.

gamenet/redis-memory-analyzer #Python #foss

RMA is a command line interface that examines your data in vitro and reports memory-related statistics. The idea is awesome, and Nikolay Bondarenko @misterionkell certainly knows his way around Redis' internals so the information reported is accurate as long as RMA updated with upcoming versions. I certainly feel there's a need for such tools, but since memory analysis is tightly coupled with Redis' implementation this functionality should make its way to the core… and it will 🙂

pampa/rutil #Go #foss

Anonymous pampa (or maybe 9eb5?) wrote a small CLI "multitool" for dumping, loading and prettifying Redis data.

Discussion: /r/redis

Redis Transactions (1.0 minute to read)

A trenchant review of Redis' transactions from Mark Paluch @mp911de. 'Nuff said.

OH Mark Paluch @mp911de > Created a text file containing string keys for all #Redis Cluster slots. Handy for testing. https://gist.github.com/mp911de/5f9890496faca01b0ff9 <- handy indeed

Simple job queue in Bash using a FIFO (8 minutes to read)

A lineup of bash scripts that use named pipes for a producer-consumer pattern, and then some, from Stefan Petrea @wsdookadr.

Buffering SQL Writes with Redis (9 minutes to read)

's approach to data management is an example polyglot-ism: immutable BLOBs are stored in Riak whereas variables are in Postgres. At scale, however, the data comes in at high rates and while an RDBMS is a marvelous tool for querying it, locking overheads quickly become staggering… which is just where Redis was put to use (4 years ago!) as a high speed data ingestion buffer as told by David Cramer. FQ: "Only time will tell how much longer until we face new constraints, but we're confident that choosing Redis early on was the right choice"

Stack Overflow: The Architecture – 2016 Edition (6 minutes to read) #ScalePorn

I love how open @StackOverflow are with their operations and the semi-regular updates that the team gives are always a delight. The architecture/infrastructure that it takes for keeping it up is amazing consider its lean size (small is better) and the requests that it handles (big is better) – by Nick Craver @Nick_Craver.

Tutorial: Deploying a Replicated Redis Cluster on Kubernetes with Flocker #Kubernetes #Docker #Flocker #AWS #HOWTO

A mouthful title with mouthwatering content from Ryan Wallner @RyanWallner via @ClusterHQ, that is in fact an easy-to-follow (with pictures!) guide for building and operating a highly available master-slave Redis pair.

Redis Static Charge (5 min read) #NodeJS

Kyle @stockholmux tops the score (or more accurately, makes it a score) with a vigintennial post. This time, in the interest of science, Kyle refutes his own hypothesis that serving static content (i.e. files) from Redis using GETRANGE-based pseudo streaming would be faster than disk.

Building a Streaming Search Platform (12 minutes to read)

Ryan Walker on how to build Straw – a platform for near real-time search of a streaming text data. Besides code, the platform consists of Apache Kafka, Apache Storm, Elasticsearch, Lucene's Luwak & Redis for the stream's processing.

jpadilla/redisapp #MacOS #foss

"The easiest way to get started with Redis on the Mac – Just download, drag to the applications folder, and double-click"… sounds easy enough. By José Padilla @jpadilla_.

Benchmarking Message Queue Latency (14 minutes to read)

Tyler Treat @tyler_treat revisits his earlier benchmarking effort and polishes it using his lessons learned since. Besides asking "what about Disque?", this iterative process leads one to an obvious question: how do you benchmark a benchmark?

OH Javier Lozano @jglozano >
Step 1: Create table called "Redis"Step
2: Store "data" in "Redis"Step
3: Get immediate approval to use "Redis" in enterprise

#winning <- Brilliant & you get to use SEQUEL!


The Future

Redis Day TLV

When: March 9, 2016
Where: AWS Pop-up Loft, Tel Aviv
What: The top Redis event in Israel – limited seats left


#RedisConf 2016

When: May 10 – 11, 2016
Where: Mission Bay Conference Center, San Francisco, CA

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. 700E El Camino Real, Suite 170, Mountain View, CA 94041

Repository |Archive | Subscribe | Follow on Twitter