On Types and Transactions

Transactions in any database are intimidating. It requires a level of understanding beyond just what is stored, but also when it is stored. Unlike the happy world that results when countless layers of abstraction can shield you from complexity, transactions require you to go deeper. Redis is not unusual in this regard. In fact, its entirely different way of thinking about transactions causes a lot of people to say it doesn't have transactions at all. Redis has them, just with an approach that's totally different from the rollbacks you've probably grown up with.

To view transactions at 10,000 ft, you have to understand a few things about Redis. One is that it is single-threaded (well, with a list of exceptions that is perhaps continuing to grow). This means that if it's doing something, that's all it's doing. Of course with Redis, "doing something" is best measured in milli- or nano-seconds. Second, keep in mind that Redis has tunable durability, with some options providing very good durability and some that are totally ephemeral. This obviously has an effect on transactions. Third, it lacks rollbacks but can fail a transaction if a key changes before it starts. This inverted way of controlling transactions lets you pull data back to the client, and evaluate it logically to ensure that the data did not change before the transaction started.

Multi-Model in Action: Using RedisGraph and RediSearch Together

At RedisConf19, I demoed a solution for running full-text RediSearch over nodes in RedisGraph. The days leading up to the event are a bit of a fog, but now, a few weeks later, I realized we should explain more about how we did this and release the source code.

In this demo, I showed a little interface that allows you to search for animals and see how they are related via the biological classification system (kingdom, phylum, class, order and so on). The full-text portion was based on the first English paragraph from Wikipedia. So, as an example, let's say you searched for "cat house pet" (Domestic Cat, Felis catus) and "baleen blue" (Blue Whale, Balaenoptera musculus), you would see that they are both just mammals, while if you searched for "cat house pet" and "snow Central Asia cat" (Snow Leopard, Panthera uncia), you would see that they both belong to the same family, Felidae.

How to Get Redis-cli Without Installing Redis Server

I probably spend more time than most in  redis-cli because I find it invaluable when I'm writing software or getting to know a new module. If I didn't have  redis-cli , understanding Redis' data structures and testing connections would be far more complicated, and I probably would've stopped using Redis long ago.

Redis-cli  by itself isn't that complicated — it's a REPL (read-eval-print loop) that speaks to the Redis server. However, getting this jewel of a tool is not as straightforward for many. The source for redis-cli is included in the Redis GitHub repository and is automatically compiled when you build Redis from source. But what happens if you can't (or don't want to) build Redis from source? It means you also don't have redis-cli, and building an entire database from source just to get access to the command-line interface (CLI) utility is overkill and sometimes not even an option.

How to Share Your Redis Geek Story at RedisConf ’19

It's that time of year! No, I don't mean the seasons changing. It's RedisConf CfP time!

This is your opportunity to talk about Redis in front of a gathering of fellow geeks. RedisConf '19 will be held April 2-3 at San Francisco's Pier 27. That might seem like a long time from now, but we're already busy putting together a schedule of sessions to ensure that April will be great.