Last week I presented at RedisConf. My presentation was about storing volatile data in Redis and searching it with RediSearch (here are the slides). I was also able to attend other interesting presentations and got a chance to spend time with @antirez discussing future Redis features.

Modules

Modules were a big part of the conference. They were announced at RedisConf 2016 and will be fully supported in Redis 4.0 which should launch soon. I like to think of them as Wordpress plugins and Redis hosting providers would need to support them (or we would need to run our own Redis servers). Here is a high level overview of the ones that interested me.

RediSearch

I have been using RediSearch for almost a year on small personal projects and really liked the full text search features. @itamarhaber from RedisLabs gave a more in-depth talk on various capabilities. I did not realize how powerful the query language is and all the possible search options it provides.

ReJSON

@itamarhaber also presented on ReJSON module that he helped develop. Right now if we have JSON we need to either convert it to string or store in hashes. But I can think of various use cases where actually storing JSON and working with it directly could be simpler.

Once we install ReJSON module we will see this in our Redis log file # <ReJSON> JSON data type for Redis .... Using this module we can manipulate JSON data structures in Redis. Since Redis clients do not support these commands we need to implement specific Redis calls using underlying driver methods.

redis = Redis.new
redis.call('JSON.SET', 'foo', '.', '"bar"')
redis.call('JSON.GET', 'foo')
# "\"bar\""

RedisGraph

And another talk by @itamarhaber presenting RedisGraph. I wanted to try graph DBs like Neo4j for a while to experiment with storing data in this format. Now I can do that with Redis. The module is using Cypher query language.

Community presentations

Kelsey Hightower from Google gave an amazing demo on using Redis Flash in Google Cloud with Kubernetes. Here is the GitHub repo. The coolest part is he used voice recognition on his phone to interact with the APIs. And it worked. If someone told me that we would be launching servers with voice commands I would not have believed it.

Rashmi Ramesh from Twitter gave a talk Using Redis at scale at Twitter. Personally I am glad I do not have to maintain a forked version of Redis and backport features.

Matthew Hicks from AppBoy gave another interesting presentation on using Redis for geofencing. The interesting part is that their platform is also written in Ruby on Rails with MongoDB. So it was great to hear someone describe very similar system architecture and also discuss differences in approaches.

Other

Afterwards I participated in post conference discussion on future features to be developped in Redis. One that we briefly discussed was “cron Lua scripts”. I really liked the idea because I can see interesting use cases to solve real world problems. For example, MS SQL Server Agent allows to schedule jobs that will execute stored procedures. While not everyone likes this approach it can be very useful for various data processing tasks. Similarly Lua scripts can be written to manipulate data w/in Redis and executed on schedule. Running w/in Redis can be much faster than making numerous Redis API calls from client application.

On the more fun side Thomas Middleditch from Silicon Valley was the guest entertainer and I even got to take a photo with him.

I am looking forward to when presentation videos are posted on YouTube channel so I can watch the rest. And I am already looking forward to RedisConf 2018.