Multi-tenancy support

Hi,

After reading the docs and looking through the source code, I could not find any reference to multi-tenancy support. Is this something keydb would consider as a feature?

Our use-case

We are currently running separate redis instances for each website/application we host on our kubernetes clusters (>100 sites). This is sub-optimal for several reasons:

  • extra number of pods => leading to extra overhead
  • memory usage
  • currently no HA setup for all websites as this would increase the number of pods + memory significantly

The ideal setup would be one (or several) redis clusters outside of our kubernetes clusters where we have a multi-tenancy/multi-user setup where each user has it’s own “namespace”.

Ideas/questions

Looking through the source code each client is associated with a database, and there seems like it would be fairly simple to use the authenticated user + database number into the lookup instead of only the database number. Do you think this approach would be feasible? Is there an upper limit to the number of databases? How would this impact performance / memory usage?

Another solution might be to auto prefix the keys based on the authenticated user, this however might lead to issues when listing keys and might lead data to (more easily) spill to other tenants.

Do you think multi-tenancy support would be possible as a module? Or is this something that needs to be in the core?

Kind regards,
Eric