Introduction
Although Redis supports a good number of data types and great features, sometimes we may wish to add our own custom data types or commands to Redis. In Chapter 3, Data Features, we have learned that Lua scripts can be used to implement our customized logic on top of Redis built-in data types and commands. Additionally, starting from Redis 4.0, we can also extend Redis capabilities with Redis modules.
Redis modules are shared C libraries that can be loaded by the Redis server at startup or runtime. Redis modules have the following advantages over Lua scripts:
- As C libraries, Redis modules run much faster than Lua scripts
- New data structures can be created in Redis modules, while in Lua scripts we can only use existing Redis data types
- Commands created in Redis modules can be called from a client directly as if they were native commands, while Lua scripts have to be called with
EVAL
orEVALSHA
- Third-party libraries can be linked into Redis Modules, while what we can do in Lua scripts...