Extending the Redis database

The new Redis Module System provides developers with access to the data structures.

By Rachel Roumeliotis
May 12, 2016
Grass modules Grass modules (source: Antranias via Pixabay)

With greater demands for data storage, processing, and access than in the past, new databases have been developed that emphasize speed and flexibility. Redis is an open source NoSQL database designed for performance, rather than an opinionated schema and command system that can restrict developers’ options.

Redis Labs recently announced a new way of extending Redis: The Redis Module System. Redis has previously been extendable through Lua scripts, but modules provide lower-level access to the Redis data structures, which opens up new options.

Learn faster. Dig deeper. See farther.

Join the O'Reilly online learning platform. Get a free trial today and find answers on the fly, or master something new and useful.

Learn more

I spoke with Redis creator Salvatore Sanfilippo about what this new system means for developers. Our full conversation is available in the embed below.

Highlights from the discussion include:

  • Developers write modules using C code, which they can then load in Redis as a dynamic library. Because Redis uses commands and arguments like a programming language, extending it through modules written in C is familiar and natural.
  • Developers can use modules to create features you wouldn’t normally associate with a database. The example modules that Redis provides include image processing, full-text searching, and authentication.
  • The example modules are open source, and available at redismodules.com. These modules enable developers to learn how to use the Redis API, and then create their own modules.

Redis hopes to create an ecosystem of users sharing modules they’ve created. Developers can publish their modules independently on GitHub, but Redis will also be creating a directory of modules with user ratings, so a developer can choose the best module for their needs, or modify an existing module in the system.

This post is part of a collaboration between O’Reilly and Redis. See our statement of editorial independence.

Post topics: Open Source