Tools, utilities and scripts to help you write redis modules!
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Dvir Volk 51f135b30a fixed inline functions 8 years ago
example updated docs and header 9 years ago
rmutil fixed inline functions 8 years ago
.gitignore removed zmalloc as a dependency, and updated the vector to use size_t 9 years ago
API.md added docs 9 years ago
FUNCTIONS.md updated docs and header 9 years ago
LICENSE Initial commit 9 years ago
README.md Update README.md 9 years ago
redismodule.h updated redismodule to data type functions 8 years ago

README.md

RedisModulesSDK

This little repo is here to help you write Redis modules a bit more easily.

What it includes:

1. redismodule.h

The only file you really need to start writing Redis modules. Either put this path into your module's include path, or copy it.

Notice: The original file is from the Redis repo, this is an up-to-date copy of it.

2. LibRMUtil

A small library of utility functions and macros for module developers, including:

  • Easier argument parsing for your commands.
  • Testing utilities that allow you to wrap your module's tests as a redis command.
  • RedisModuleString utility functions (formatting, comparison, etc)
  • The entire sds string library, lifted from Redis itself.
  • A generic scalable Vector library. Not redis specific but we found it useful.
  • A few other helpful macros and functions.

It can be found under the rmutil folder, and compiles into a static library you link your module against.

3. An example Module

A minimal module implementing a few commands and demonstarting both the Redis Module API, and use of rmutils.

You can treat it as a template for your module, and extned its code and makefile.

It includes 3 commands:

  • EXAMPLE.PARSE - demonstrating rmutil's argument helpers.
  • EXAMPLE.HGETSET - an atomic HGET/HSET command, demonstrating the higher level Redis module API.
  • EXAMPLE.TEST - a unit test of the above commands, demonstrating use of the testing utilities of rmutils.

4. Documentation Files:

  1. API.md - The official manual for writing Redis modules, copied from the Redis repo. Read this before starting, as it's more than an API reference.

  2. FUNCTIONS.md - Generated API reference documentation for both the Redis module API, and LibRMUtil.

Quick Start Guide

Here's what you need to do to build your first module:

  1. Build Redis in a build supporting modules.
  2. Build librmutil: cd rmutil && make
  3. Build the example module: cd example && make
  4. Run redis loading the module: /path/to/redis-server --loadmodule ./example/module.so

Now run redis-cli and try the commands:

127.0.0.1:9979> EXAMPLE.HGETSET foo bar baz
(nil)
127.0.0.1:9979> EXAMPLE.HGETSET foo bar vaz
"baz"
127.0.0.1:9979> EXAMPLE.PARSE SUM 5 2
(integer) 7
127.0.0.1:9979> EXAMPLE.PARSE PROD 5 2
(integer) 10
127.0.0.1:9979> EXAMPLE.TEST
PASS

Enjoy!