As HostBridge continues to make available its free 32-bit version of Redis for the mainframe via its web site, I decided to attend a Redis Meetup in the Palo Alto CA area to get a feel for what is currently hot in the Redis world. Aside from finding out that there are a lot of Redis developers out there and all of them were smarter than me (oh well), I did glean some information that may be useful to those of you using Redis as part of your development environment. Here goes:
- For those of you that attended RedisConf 2016 in San Francisco, you can find links to all of the conference presentations (including a really good one given by Russ Teubner, HostBridge’s CEO) at http://www.twitter.com/redisconf. You will also find, among other things, a URL pointing to an interview with Salvatore Sanfilippo (the creator of Redis) where he gives basically a ‘state of the union’ interview for Redis.
- The official RedisLabs position is that they don’t like people building Redis applications that involve periodically saving Redis data to disk. Their view is that any disk access slows things down and takes away from Redis’ primary benefit – fast access to large amounts of data in memory. In the same vein, they state that Redis should not be used for any application that requires large amounts of writing of data as part of the app itself – the best use of Redis is to use it to search for data that is being streamed to it from an outside source. This falls in line with one of the ways we envision Redis being used in a mainframe environment – as a repository for data that is often searched and needs to be made available to non-mainframe applications..
- I asked about anyone having experience in using lexicographical searches on Redis sorted sets. No one there (about 30 developers) had any experience in this, or in using any of the z series of Redis commands. There is a gentleman at RedisLabs named Dvir Volk who is the resident expert on using Redis Sorted sets and lexicographical searches, and who is currently writing a series of Redis modules to do high-performance searches against this type of Redis data construct. Here is a link to one of his presentations: https://redislabs.com/wp-content/uploads/2016/03/09-Scalable-Search-with-Redis-Dvir-Volk-Redis-Labs.pdf. His GitHub space is https://github.com/dvirsky?tab=repositories
- According to the speaker that was at the meetup, the optimal size of a Redis instance is 5-10GB, but can be as large as 500GB. You get better performance by having many 5-10GB instances instead of one 500GB instance. I also got the sense from the general discussion that much of Redis tuning is still trial and error – but simplest setup is usually best.
- I learned a new word that was used to describe services that use Redis – idempotent – which, in the computer science world means, according to Wikipedia, “describes an operation that will produce the same results if executed once or multiple times”. This falls into line with the precept that Redis works best when used for data storage that is to be used by stateless services or, even better, stateless microservices (the smaller the better) – which is also the preferred technique when writing HostBridge services.
- Here is a link to the PowerPoint presentation given at that meeting: http://www.slideshare.net/dcnielsen/Redis-as-a-Main-Database-Scaling-and-HA
Keep developing, Redis geeks – and remember that 80% of all business data lives on the mainframe….