Using redis/leveldb for persistence should be fairly straightforward. Using them to replace the in-memory data is much less straightforward and would require a lot of work to do properly. I used to use sqlite as the database backend, but the performance was poor due to the complex regular expressions required to do proper topic matching (see the notes at https://bitbucket.org/oojah/mosquitto/src/tip/doc/historical/old-regex.txt ). Moving to the current system produced hugely significant performance improvements. I doubt that a key/value store would be as bad but it would need to be designed carefully.
Although mosca supports redis as a persistence it does not implement topic/subscription matching very well so subscriptions will not work properly. Matteo, you should look at file mosquitto/test/broker/03-pattern-matching.py for some examples that fail in mosca.
Using redis/leveldb for persistence should be fairly straightforward. Using them to replace the in-memory data is much less straightforward and would require a lot of work to do properly. I used to use sqlite as the database backend, but the performance was poor due to the complex regular expressions required to do proper topic matching (see the notes at https:/ /bitbucket. org/oojah/ mosquitto/ src/tip/ doc/historical/ old-regex. txt ). Moving to the current system produced hugely significant performance improvements. I doubt that a key/value store would be as bad but it would need to be designed carefully.
Although mosca supports redis as a persistence it does not implement topic/subscription matching very well so subscriptions will not work properly. Matteo, you should look at file mosquitto/ test/broker/ 03-pattern- matching. py for some examples that fail in mosca.