Redis Storage Engine

This patch adds an alternative storage engine that uses Redis as backend, instead of a big file or a spool directory.

This makes the application a lot more cloud-friendly, as it doesn’t rely on a local filesystem to operate and an instance can be quickly replaced without losing the pending messages.

To use it, you need to configure the store-type as “redis” in Kannel’s config file:

store-type = redis

Then, set a DB Pool connection to Redis:

group = redis-connection
id = redispool
host = localhost
port = 6379
database = 1
max-connections = 10

Last, configure a store-db group with the same id as the pool (in this case, “redispool”) and a table name.

group = store-db
id = redispool
table = store1

NOTE: If you’re sharing the Redis instance across 2 or more Kannel servers, make sure to use different databases and/or table names. Similarly to file-based storage engines, Kannel cannot share the same store across different instances.

Here’s the patch against latest SVN:

kannel-redis-storage-engine

DISCLAIMER: This is by no means considered stable code and needs further testing and benchmarking to be considered safe for production use.

Comments (2)

CoffeemachineFebruary 9th, 2015 at 6:19 PM

What are you talking about 2 kannel cant use the same redis store.. Thats exactly what i use it for so the dlrs are shared on both kannel instance

alexApril 28th, 2015 at 5:06 PM

If you read carefully, this patch is not to implement DLR storage (which already exists) but for persisting the message store using Redis. You cannot share the message store between kannel instances (e.g. having two kannel instances running on the same server and sharing the store file/folder).