RedisConf18 Experience

RedisConf18 Experience

Written by Cheryl Fong

Free Tickets

First and foremost, I would like to thank the Women Who Code Sponsors for making my experience at RedisConf’18 possible, the wonderful people at Redis Labs for going above and beyond, and not forgetting the other Redis Labs employees and staff members for making this conference a success. 

RedisConf’18  |  April 24th – 26th  |  Pier 27, San Francisco

Day 0 :: Training Day 

Registration was prompt and after fueling up on the healthy breakfast on-site, I was super eager to get the day started. And what better way to start Day 0, a full day of training with the creator of Redis, Salvatore Sanfilippo; in a conference room with a stunning view of the Bay Bridge:

The San Francisco fog eventually cleared up, but what was outside wasn’t important for now. 

Salvatore’s Training Day Introduction: 

Salvatore started off our day by explaining the mechanics of Redis types on a high level. By understanding the low levels of Redis types, one could use Redis more efficiently or in other words, it could help with understanding what was going on in the background (the stuff you wouldn’t otherwise care about unless something goes wrong).

He added that reading the Redis source code is approachable since he has made many comments and jokingly said that this is what prospective engineers do before interviewing at Alibaba Cloud. 

Redis Lists being one of the many data types that he has presented, is actually a macro node similar to that of linked-lists. This macro node consists of many strings with one pointer, instead of the conventional, one string (value) per pointer. These macro nodes are organised in a tree structure. Using the OBJECT command, allows you to inspect the internals of Redis Objects, e.g. to see the type of an object. (This is not comprehensive but is enough to give you the gist of it.)

Redis Streams: Link to Video

After lunch, Salvatore took us on a Redis Streams tour. Redis Streams is the more approachable data type for managing streams of events (a unified log).  The records in a stream have addressable ID(s) each of which is a logical offset. 

Salvatore does a great job of explaining this, check out the Welcome to Redis Streams Tutorial to learn more!

These articles contrast Kafka and Redis Streams very well, and have certainly helped with my understanding:

  1. https://hackernoon.com/introduction-to-redis-streams-133f1c375cd3

  2. https://brandur.org/redis-streams 

Additionally, here’s how to discern which to use, Kafka or Redis Streams:

https://news.ycombinator.com/item?id=16232946 

https://news.ycombinator.com/item?id=15653544

This day’s training went from 9 to 5 and was absolutely enlightening, and ended well with the Training After Party which was just outside the conference building at the Pier 23 Cafe.  

View of Pier 27

Attendees mingling at the Pier 23 Cafe

The side of Pier 23 facing Pier 27

Link to Training Material:

https://s3-us-west-2.amazonaws.com/rc18.training/RedisConf18+Advanced+Training.zip 

Day 1 :: April 25th

Given that I wasn’t so familiar with public transportation in the area, getting to Pier 27, i.e. the conference building, turned out to be a swift journey each day. This is thanks to the launch of rentable electric scooters from several companies in the area sometime ago. 

Renting these scooters is perhaps the best thing to do if exploring the San Francisco Pier is on your agenda, since renting bikes from local touristy vendors can be expensive and bulky. These things only cost 15 cents an hour, all you need is a smartphone to unlock a scooter and then leave them anywhere when you’re done.

After having attended the keynote,  I went to the various sessions that were laid out for the day. 

Videos that make up the Keynote for Day 1:

New Ideas About Redis – Salvatore Sanfilippo

The Next-Generation Redisgraph – Yiftach Shoolman

Shaping the Cloud Native Future – Abby Kearns

Fireside Chat with Joel SpolskyManish Gupta

These are just two of the sessions that I’ve attended that day:

Loris Cro explained that he did https://github.com/kristoff-it/redis-cuckoofilter in a month over his summer break. 
Which reminded me of Itamar Haber from Redis Lab having explained a chart on whether it is necessary to do build a module:

[The Training Material contains Itamar’s slides on Buiding Modules] 

If making a Redis Module is what you need to do, then check this out  https://github.com/RedisLabs/RedisModulesSDK, and then use this as a guide: https://redis.io/topics/modules-intro

Link to Video

This title was misleading but also provoked interest at the same time. Ramon Snir talked about how he and his team customized their architecture around Redis to their advantage while keeping it as a secondary database. He talked about his hurdles and the technical details that he did to overcome them. His experience to me seemed specific to his company’s use case. 

The one thing I took away from his presentation, whether this was his intention or not was that you’ll need to go against conventional norms (what people generally tell you to do) if you can demonstrate that what you are doing works better than the suggested norm. 

In his case, Redis was simply used as a cache (where we all know that it can be more than just a “cache”) and what people would have told him or have questioned, as it was prevalent among the audience i.e. , “Why not have Redis handle everything, why bother having these other components?” 

So to any young aspiring engineer (this includes myself), do not simply do what you are told in the workplace especially if you know and can prove that there’s a better way of doing it! (Taking time constraints into account as well.)

Link to Video

  • DevOps Meetup: "10 Years of DevOps", New Kubernetes Tools, and more

Although only having taken a glance at this meetup and left within less than 10 minutes after,  [Name of Speaker] was just walking the crowd through the timeline of DevOps and noticing how much the landscaped has changed.

He also noted that the O’Reilly Velocity conference, happening in San Jose from June 11th to the 14th 2018 was “the place” to go to for all things DevOps.

Try and apply to get your free ticket here, through the courtesy of Women Who Code.

As the happy hour in the expo hall dwindled, I left Pier 27 to attend to my other priorities and with great excitement for tomorrow’s agenda. 

Day 2 :: April 26th

Jimmy Yang’s comedy skit was a great way to end the keynote on the last day, which made me think, “Shouldn’t we all start our day with laughter first thing in the morning?”

There being so many sessions that I went to, it’s impossible to not sound overly verbose in describing them. 

Videos that make up the Keynote for Day 2:

Lessons Learned While in the Technology Pinata – Scott McNealy 

Redis as a Primary Database – Ofer Bengal

Redis as a Primary Database Part II – Yiftach Shoolman

Openness and Inclusiveness of K8s – Sarah Novotny

So I thought I would highlight the two international presenters that stood out to me this day:

LINE is the quintessential messaging app in countries like Korea and most of Southeast Asia. Other than the fact its headquarters is in Japan and that they offer short winter internships annually at its Japanese offices, I did not know much about them let alone their internal workings.

This session was perhaps the more popular out of all the ones I've attended that day. The audience was noticeably keen on taking photos of each slide that Jongyeol Choi had to offer.

Although his Korean accent came out in certain words, I thought his presentation was well rehearsed. And if not for the long line of questions right after the session ended, I would have said to him that you are perhaps the most prepared speaker in this conference.

Link to Video

Jiaqi Wang was the only female presenter that didn’t share the stage with anyone else.  Although she was noticeably nervous, she picked herself up and progressed with a cheerful pace and had a calm composure at the same time. 

Perhaps the most interesting aspect of Jiaqi’s presentation was about how long data should be kept as cache and how often data updates happen. Redfin’s algorithm balances the costs and benefits of this operation. 

As described in her presentation, Redfin’s algorithm updates data based on data characteristic e.g. the status of a property listing and the receival of data updates. Properties for sale have a lot going on. Open house visitations, offers from buyers and many more can affect the listing price of a property and as such, these listings receive updates at least once a day and will receive even more for newer listings. While off-market properties tend to have much less activity, their prices fluctuate with the market so these listings are updated at least once a week. 

This begs the question, why doesn’t Redfin cache data for off-market properties up to a week but instead caches it for four hours? Redfin’s cache system does not know when the next update receival will happen for a given day. It is through their experimentation that they’ve found four hours to be a long enough expiration time to avoid caching stale data. Since there’s the possibility that an update may happen the moment the data gets cached. 

Think of this like a game of, catch the ball, but you can only catch the ball when there’s no ball in your hands. Each update is a ball throw, and the amount of time cached is the amount of time you’re holding the ball for. Imagine if you just picked up a ball the moment one was about to land in your direction. This means that you’re not holding the most recent ball that was thrown, i.e. the cache will not contain the most recent update. The ball on the ground and the next balls that will be thrown are ignored until you are done holding the current ball for the specified amount of time i.e. the amount of time set for data to be cached.

SETEX which allows for a key to expire after a given amount of time is the most common command when using Redis as a cache.

Link to Video

Last Words of Gratitude: 

Last but not least, thank you Jocelyn Chow and Tague Griffith at Redis Labs for helping me with peer reviews before publishing this article and working your magic on social media. 

Lastly, a great big thank you to Sharon Thompson also from Redis Labs who’s made my participation at the on-site training possible and has opened up many doors for direct and indirect opportunities with Redis and many more. 

TLDR;

  1. Don’t know what Redis is? Make today, the day you start learning Redis!

    1. There’s tons of support and documentation. If you have any particular questions about using Redis that you might have not have found online, the people at Redis Labs are ready to help.

    2. Time to diversify, don’t just stick to a SQL database. Learn NoSQL and if this is your first time learning how to implement a database. Learning Redis can be a good way to start.

  1. Want to be remembered? Consider supporting Women Who Code:

    1. It opens up so many opportunities for women, girls, employed or unemployed, minorities and including students, which they might not have gotten elsewhere. 

    2. Your good deed turns into something impactful, by propelling these people forward and they’ll be forever grateful and remember. You’ll get bang for your money and time.

  1. Consider attending RedisConf:

    1. The atmosphere with the developers and non-developers are inviting. There are all levels of Redis users at the conference and it was a lot of fun getting to know what people are using Redis for. 

    2. Make new friends + job opportunities too.

    3. I was surprised at Salvatore’s ability to explain code and guide a workshop. Despite his Italian accent, he was very good!

I’ll end this article with a photo of the San Francisco Skyline during lunch break at RedisConf’18.

The eclectic selection of food trucks catering for RedisConf’18 

The views and opinions expressed in this article are of mine and do not reflect on the opinion of the mentioned parties. 

 Here’s a little about me: http://universityinnovation.org/wiki/Cheryl_fong