Hacker News new | ask | show | jobs
by educar 3698 days ago
The docs explain the module system (https://github.com/antirez/redis/blob/unstable/src/modules/I...) but it doesn't quiet explain what the system is for. I couldn't quite get that from reading the blog post or the doc page. Specifically:

What kind of modules did you have in mind when designing this? Are any of the below possible?

* ldap backend login system

* multi-tenant redis

* alternate db format/file system.

* implement a new redis data type. say built-in date support

* can i implement new commands and operators on said data types

An of course, thanks for this fantastic software. We use it everyday. Will read in more detail about this over the weekend :-)

2 comments

Actually the post explains the motivation well. The basic idea is to add capabilities to redis at native speeds, without having to either convince antirez that they're necessary or forking redis.

I work for Redis Labs, and over the course of the past few weeks we've experimented with some modules using the API. Some of the things we did that might answer some of your questions:

a PAM based authentication module, which IIRC can plug into LDAP potentially.

A bloom filter implementation on top of bitmaps.

An inverted index that doesn't use existing data types but rather creates compressed indexes directly using redis strings (I wrote that one personally BTW)

An API to store images on redis and retrieve them resized or cropped.

So right now the only way to create new data types is to piggyback strings as raw memory, but the final version of the API will include actually registering new data types.

You can see the modules we've released here: https://github.com/RedisLabsModules/

Maybe you can relay the information to the appropriate person, but on http://redismodules.com, I can neither right click "open in new tab" or ctrl+click to open in a new tab.

This breaks my normal browsing habit of opening new tabs as I see something that interests me, but waiting until I finish skimming the list to read.

Thanks, will let the relevant person know.
> a PAM based authentication module, which IIRC can plug into LDAP potentially.

Yes, pam-ldap / pam-sssd / pam-winbind plug into various LDAP implementations (plain LDAP / ActiveDirectory) and work transparently with all PAM clients.

I'm not related to redis devel, but I happened to be at the conference where antirez announced the modules.

My understanding from the talk was:

* already available: strings DMA, that you can use for new data types

* in progress but soon (like, a few weeks): commands pre-hooks, that you can use e.g. for auth

* I assume soon (but I don't recall, it could be already available): operations on new data types

* I don't think I've heard anything about alternate db format, but maybe you can think of creative ways of mixing pre-hooks and strings DMA

* I'm not sure what you have in mind about multi-tenant, but I guess you can implement some primitives in a way similar to auth

What I meant by multi-tenant is a multi-user redis (just like multi-user mysql/postgresql. (ie) i can create users and have them use redis completely separately on a single instances on redis.