Redis: CS101 Data Structures via the Network

Data: NoSQL Databases
Location: B118-119
Average rating: ****.
(4.00, 2 ratings)

Redis is an in memory db in the new #nosql(not only sql) category of databases. But it really is more like the swiss army knife of data structures accessible via the network. It’s a very fast key/value store, near 100k ops/second on a midrange commodity linux box, but that is not the most interesting thing about it. Redis is useful for so many tasks in modern websites and cloud computing applications precisely because the ‘value’ part of its key/value storage system has ‘types’. Not only can you store strings or binary blobs of data like any k/v store, you can also store LISTS, SETS, ZSETS and HASH’s. This plus the many atomic commands available to manipulate these structures make for a very interesting database server capable of taking many things you would usually do in your own programs memory space and letting you do it over the network and from many clients at once.

Redis has changed the way I write a lot of my programs(I write a lot of backend, lower level stuff ;) and has become one of the best hammers in my toolset ;) It can be used for message queues by pushing and popping from it’s LIST data type. It can be used as a score board/leader board with its atomic counters and ZSET’s. It can be used as a large shared memory of data structures shared between hundreds or even thousands of clients in a distributed system. There are too many use cases beyond what you would normally use a key/value store to list here.

In this talk we will discuss some of the ways I have personally used Redis in production systems ranging from web applications to cloud computing platforms. I will share some hard earned battle tales and success stories as well as give the audience a feel for what Redis is very good at and what it should not be used for.

This talk will be an intermediate to advanced level techincaly, but will be interesting for anyone that has heard of redis and wanted to know more, or has already used redis and is looking for more ways of using and abusing it ;)

Ezra Zygmuntowicz

VMware Inc

Ezra Zygmuntowicz has been a rubyist for 9 years now. Over the course of that time he has written many open source project including Merb(which was merged with rails to help build a better architecture for Rails 3.0), Nanite, redis-rb and many more. He wrote the first book on Rails deployment for the pragmatic programmers and also launched one of the first commercial rails sites at the end of 2004(

Ezra has gravitated towards the deployment and tooling of ruby applications. He cofounded Engine Yard in 2006 and has spoken at every single RailsConf except for last year.

Ezra is currently working for VMware helping to build a new cloud operating system that will redefine the way people deploy and manage their development and production deployment workflows.