我正在开发一个新的SaaS应用程序,它使用redis来处理会话存储和查询缓存。
我不知道使用redis实现SaaS应用程序的最佳架构。为所有租户使用单个redis数据库并按名称空间识别每个租户会更好,或者为每个租户使用单个redis数据库会更好吗?
我认为为所有租户使用单个数据库会更好,但我对此并不确定。
另外,如果在单个数据库中使用redis的最佳选择,我想知道如何使用redis进行查询缓存。如果我想在缓存中保存一个租户的所有产品如何管理这个。我认为这将是类似的事情。
HMSET产品:tenant_id id" 123"名称"产品名称"价格" 9.99"
如果这是最好的方法,我不知道如何通过id获得一种产品
提前致谢
答案 0 :(得分:0)
只需在散列密钥中包含产品ID:
HMSET产品:tenant_id:123名称"产品名称"价格" 9.99"
如果您还希望每个租户使用一个数据库,则必须确保redis.conf中定义的最大数据库数量大于或等于租户数量。默认值为16.
每个租户使用一个数据库可能会有一些小的优点,但没有决定性的:
从我的观点来看,这两种解决方案都是有效的。