It’s not yet stable but it’s soon to become, and comes with a long list of things that will make Redis more useful for we users: finally Redis 4.0 Release Candidate 1 is here, and is bold enough to call itself 4.0 instead of 3.4. For me semantic versioning is not a thing, wha...
In the past I had spent hours asking people to recommend me some books, in both real life and on the internet. I was starting to learn programming, so obviously I wanted to find The Bible, the best book for each of the aspects of coding. What is the best book about algorithm...
Why do I want to have my own site?
Narcissism mostly. I found the domain was available, decided as a self-respecting developer I should probably buy it. But then there’s no point owning a domain if you don’t put something there. So that was it really - I had to I had to get ...
Last week I went to a jobs event, recruiting for my company. I was there on my own, and recruiting is a pretty new experience for me, so I was kinda excited about it. The attendees were a mix of graduates, bootcampers, and a few more senior developers, but mostly the crowd w...
So no matter how pretty your code, eventually someone will benchmark it and demand top performance. Squeezing microseconds is a very addictive and even destructive activity. It ruins your evenings, destroys your ability to converse with human beings and typically leaves your code in a mess.
No programmer can escape it however: the world demands speed, or a somewhat equivalent modern measure, longer battery life.
Squeezing out more performance is not just a matter of “writing better code”.
Redis is often used for caching, in a setup where a fixed maximum memory to use is specified. When new data arrives, we need to make space by removing old data. The efficiency of Redis as a cache is related to how good decisions it makes about what data to evict: deleting dat...
WARNING: Long pretty useless blog post. TLDR is that I wrote, just for fun, a text editor in less than 1000 lines of code that does not depend on ncurses and has support for syntax highlight and search feature. The code is here: http://github.com/antirez/kilo.
Screencast her...
Grids are the best thing to ever happen to graphic design. They form a rational basis for organizing information. They support the harmonious distribution of elements and visual weight. We don’t design things with grids because it’s easy, or because everyone else is doing it...
I’m spending days trying to get a couple of APIs right. New APIs about modules, and a new Redis data type.
I really mean it when I say *days*, just for the API. Writing drafts, starting the implementation shaping data structures and calls, and then restarting from scratch to ...
Fellow members of The International Cabal to Destroy Design, I write you today because we stand atop a precipice, faced with the threat of annihilation. The rogue Eli Schiff has been systematically exposing our wicked deeds in an attempt to derail the Modern Minimalist plot....
It was a matter of time but it eventually happened. In the Redis 1.0 release notes, 7 years ago, I mentioned that one of the interesting features for the future was “loadable modules”. I was really interested in such a feature back then, but over the years I became more and m...
I’m aboard of a flight bringing me to San Francisco. Eventually I purchased the slowest internet connection of my life (well at least for a good reason), but for several hours I was without internet, as usually when I fly.
I don’t mind staying disconnected for some time usua...
It took more than expected, but finally we have it, Redis 3.2.0 stable is out with changes that may be useful to a big number of Redis users. At this point I covered the changes multiple time, but the big ones are:
* The GEO API. Index whatever you want by latitude and longi...
A meandering walk through innovation that also reviews a book
This article is part of a series on (European) innovation and capabilities.
I care deeply about innovation. It is literally where the future comes from, but it is a curious thing. Innovation and its more powerful partner, invention proceed at a snail’s pace. “In a world where change is the only constant” is a lie. It took this world 20 years to invent a decent can opener.
Today Redis is 7 years old, so to commemorate the event a bit I passed the latest couple of days doing a fun coding marathon to implement a new crazy command called BITFIELD.
The essence of this command is not new, it was proposed in the past by me and others, but never in a...
Yesterday night I was re-reading Redlock analysis Martin Kleppmann wrote (http://martin.kleppmann.com/2016/02/08/how-to-do-distributed-locking.html). At some point Martin wonders if there is some good way to generate monotonically increasing IDs with Redis.
This apparently s...
Martin Kleppmann, a distributed systems researcher, yesterday published an analysis of Redlock (http://redis.io/topics/distlock), that you can find here: http://martin.kleppmann.com/2016/02/08/how-to-do-distributed-locking.html
Redlock is a client side distributed locking al...
2025 Note - Behind the scenes, Pebble was a mess. We were about to do a layoff and enter the final year…
Today I’m happy to announce that the first release candidate for Disque 1.0 is available.
If you don't know what Disque is, the best starting point is to read the README in the Github project page at http://github.com/antirez/disque.
Disque is a just piece of software, so i...
Part 3 in the series: writing the server in NodeJS.