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.

LibraryLanguageWhat it needs
BullMQNode.jsKiviDB 1.1.0 or later, Lua build
SidekiqRubyKiviDB 1.1.0 or later, Lua build
mem0PythonSearch (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.