Skip to main content
Markdown

Deploy Redis Applications and Modules

Redis client applications deploy as native executables. Custom commands deploy as modules loaded for the lifetime of the Redis server process, with a restart required to replace them. Check the supported configurations and retain a compatible runtime with either artifact.

Client Applications​

For a configured native target, run exaloop --target app package --bundle-runtime. Keep the complete package together and provide Redis credentials and TLS certificates separately. The runtime-package guide covers host requirements and additional libraries.

Server Modules​

The builder accepts --sdk, --mode debug|release, --numerics py|c, and --stdlib /absolute/path/to/codon/stdlib. It uses the SDK alongside the script by default; use --sdk to select a different SDK directory.

The compiled module requires matching Codon runtime libraries and valid dynamic-library search paths. Python is a build-time dependency only. Every Codon module in a Redis process must use the same runtime version. The SDK's static bridge is already linked into the module.

Restart Redis when replacing a module

The module remains loaded for the lifetime of the server process. Replacing the file while Redis is using it can corrupt the process; a restart loads the new version.

Execution and Platform Limits​

Handlers execute on Redis's command thread, so the duration of a handler affects other clients. Native modules also execute with the server's privileges rather than in a sandbox. Representative traffic and permission checks in staging help establish their operational impact; host requirements are listed in the compatibility reference.

Next Steps​