Redis for SaaS应用程序

时间:2016-10-24 09:35:14

标签: redis saas

我正在开发一个新的SaaS应用程序,它使用redis来处理会话存储和查询缓存。

我不知道使用redis实现SaaS应用程序的最佳架构。为所有租户使用单个redis数据库并按名称空间识别每个租户会更好,或者为每个租户使用单个redis数据库会更好吗?

我认为为所有租户使用单个数据库会更好,但我对此并不确定。

另外,如果在单个数据库中使用redis的最佳选择,我想知道如何使用redis进行查询缓存。如果我想在缓存中保存一个租户的所有产品如何管理这个。我认为这将是类似的事情。

HMSET产品:tenant_id id" 123"名称"产品名称"价格" 9.99"

如果这是最好的方法,我不知道如何通过id获得一种产品

提前致谢

1 个答案:

答案 0 :(得分:0)

只需在散列密钥中包含产品ID:

HMSET产品:tenant_id:123名称"产品名称"价格" 9.99"

如果您还希望每个租户使用一个数据库,则必须确保redis.conf中定义的最大数据库数量大于或等于租户数量。默认值为16.

每个租户使用一个数据库可能会有一些小的优点,但没有决定性的:

  • 密钥会更短,因为它们不包含租户ID;所以他们会少用内存。只有当您拥有非常多的密钥和有限的内存时,这才会很重要;
  • 您可以使用FLUSHDB刷新给定租户的所有密钥。但是你的用例有意义吗?

从我的观点来看,这两种解决方案都是有效的。