Integrations
KiviDB speaks the Redis protocol, so a library written for Redis connects to it unchanged. The pages in this section cover the libraries we run our own test…
Integrations
KiviDB speaks the Redis protocol, so a library written for Redis connects to it unchanged. The pages in this section cover the libraries we run our own test suites against, with what each one needs from the database.
| Library | Language | What it needs |
|---|---|---|
| BullMQ | Node.js | KiviDB 1.1.0 or later, Lua build |
| Sidekiq | Ruby | KiviDB 1.1.0 or later, Lua build |
| mem0 | Python | Search (every build); redisvl older than 0.28 |
Job queues need the Lua build
BullMQ and Sidekiq keep their queues in the database and change them with Lua scripts, so that taking a job and marking it as taken is one step no other worker can interrupt. KiviDB's default build does not include Lua. The Lua build does.
On the default build:
- BullMQ fails on its first call with
ERR Lua scripting is not supported by KiviDB. - Sidekiq runs plain jobs, but scheduled jobs and retries never run, and nothing reports an error. This is the one to watch for.
On KiviDB Cloud
When you create a database, turn on Job queues (BullMQ, Sidekiq) in the last step of the configurator. It selects the Lua build and, at checkout, lists only the KiviDB versions that support these libraries.
For a database that already exists, open Configuration and turn on Lua scripting. The database restarts once on the Lua build. Check that its version is 1.1.0 or later on the same page, and upgrade it there if not.
The free tier does not offer the Lua build.
Self-hosted
Download the build whose name starts kividb-lua- from
Downloads, or use the container tag that ends -lua:
docker run -p 6379:6380 kividb/kividb:v1.2.0-lua
The server's first log line says which build is running:
KiviDB 1.2.0 starting: pid 1, lua build, config file none
How these are tested
Each library's page lists what our suite exercises. The same suite is run against Redis 8 as a baseline, and a check counts only if it passes on both.