FUNCTION LOAD
FUNCTION LOAD [REPLACE] function-code
- Available since:
- Redis Open Source 7.0.0
- Time complexity:
- O(1) (considering compilation time is redundant)
- ACL categories:
-
@write,@slow,@scripting, - Compatibility:
- Redis Software and Redis Cloud compatibility
Load a library to Redis.
The command takes one required parameter: the source code that implements the library. The library payload must start with a shebang statement that provides the library metadata, including the engine to use and the library name.
Use this shebang format:
#!<engine name> name=<library name>.
Currently, <engine name> must be lua.
For the Lua engine, the implementation should declare one or more entry points to the library with the redis.register_function() API.
Once loaded, you can call the functions in the library with the FCALL or FCALL_RO commands, as appropriate.
For more information please refer to Introduction to Redis Functions.
Required arguments
function-code
The library's source code. It must begin with a Shebang statement that declares the engine and library name, for example #!lua name=mylib.
Optional arguments
REPLACE
Replace an existing library that has the same name.
Examples
The following example will create a library named mylib with a single function, myfunc, that returns the first argument it gets.
redis> FUNCTION LOAD "#!lua name=mylib \n redis.register_function('myfunc', function(keys, args) return args[1] end)"
mylib
redis> FCALL myfunc 0 hello
"hello"
Redis Software and Redis Cloud compatibility
| Redis Software |
Redis Cloud |
Notes |
|---|---|---|
| ✅ Standard |
✅ Standard |
Return information
One of the following:
- Bulk string reply: the library name that was loaded.
- Simple error string in the following circumstances: an invalid engine-name was provided,
the library's name already exists without the
REPLACEmodifier, a function in the library is created with a name that already exists in another library (even whenREPLACEis specified), the engine failed in creating the library's functions (for example, because of a compilation error), or no functions were declared by the library.