Happy New Year everyone,
I though I'd share my experimental Redis mod in this group, hopefully this is sufficiently on-topic.
I've successfully embedded SQLite within Redis server, and have written code that lets one submit SQL statements, as well as a SQL function that allows Redis commands from within SQL.
At this point there exists only a one-page simple introduction on
http://thredis.org/ which IMHO explains what it is done pretty well. (I originally named it Thredis though it seems to have far diverged from simply a multi-threaded version of Redis.)
I am very curious whether people think that this may be practically useful, or is this more like combining a toaster with a dishwasher :). My original use case was data-analytics on large datasets which required some elaborate zset operations and I wanted to minimize network back-and-forth by keeping as much processing as possible on the server side. Introducing SQL into the mix access allows for some interesting possibilities, for example something as trivial as substring search of lists/hashes/zsets, ability to join them, etc.
I've observed some interesting things, for example a SELECT with a LIKE clause on a Redis list object of a million elements runs actually faster than over a SQLite table. (Which is sort of obvious - iterating over a list, which is a linked-list is much cheaper than the SQLite B-Tree).
Another thought is that once SQLite4 matures, there may be a more elegant alternative to this whereby Redis Cluster could serve as the backend replacing the LSM layer, providing an in-memory SQL database with infinite linear scalability. (The only problem is that Redis currently does not provide a Sorted Map structure or an Iterator interface, but that could be solved).
Anyway - I would appreciate any feedback/thoughts on this idea!
Cheers,
Grisha