当前位置: 首页 > 知识库问答 >
问题:

Redis for SaaS应用程序

彭存
2023-03-14

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

我不知道在SaaS应用程序中使用redis实现的最佳架构。对所有租户使用单个redis数据库并通过命名空间识别每个租户更好,还是对每个租户使用单个redis数据库更好?

我认为对所有租户使用单一数据库更好,但我不确定这一点。

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

HMSET产品:租户id“123”名称“产品名称”价格“9.99”

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

提前谢谢

共有1个答案

程沛
2023-03-14

只需在哈希键中包含产品id:

HMSET产品:租户id:123名称“产品名称”价格“9.99”

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

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

  • 密钥将更短,因为它们不包括租户ID;因此,他们将使用更少的内存。只有当你有大量的钥匙和有限的内存时,这才有意义
  • 可以使用FLUSHDB刷新给定租户的所有密钥。但它在您的用例中有意义吗

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

 类似资料:
  • 下图说明数据流如何贯穿整个系统: index.php 作为前端控制器,初始化运行 CodeIgniter 所需要的基本资源。 Router 检查 HTTP 请求,以确定谁来处理请求。 如果缓存(Cache)文件存在,它将绕过通常的系统执行顺序,被直接发送给浏览器。 安全(Security)。应用程序控制器(Application Controller)装载之前,HTTP 请求和任何用户提交的数据将

  • Application是CatLib程序的核心,也是所谓的程序入口。应用程序通过引导来加载服务提供者和其他一些必须的资源。应用程序在一般情况下只允许启动一个,且只能在主线程中启动。 在任何位置,您可以通过App全局变量访问应用程序。 启动流程 Application.Bootstrap -> Application.Register -> Application.Init Application.

  • Leafpad Leafpad是一个十分小巧、快捷的图形界面文本编辑器,它可以用于作笔记或者编辑文件。你可以在菜单中找到它,或者直接在命令行中指定Leafpad编辑文件: $ leafpad Templates/script-shell.sh ISO 大师 —— 创建并且编辑ISO文件 ISO大师是一个可以创建、操作、编辑ISO镜像的图形工具,你可以储存或刻录生成的ISO文件。这个软件简单、直观

  • The best software in the world only sucks. The worst software is significantly worse than that. — Luke Kanies 在本章中,我们将学习如下内容: 管理 Apache 服务 创建 Apache 虚拟主机 创建 Nginx 虚拟主机 创建 MySQL 数据库及用户 管理 Drupal 站点 管理

  • 我有一个Winforms应用程序,它目前正在使用application Insights SDK捕获错误日志、事件、异常、表单视图和另一个遥测。App Center现在支持WinForms应用程序,它还支持将遥测数据导出到应用程序洞察中。我现在的问题是,我是否应该从WinForms应用程序中删除Application Insights SDK,而使用AppCenter SDK?这样做有什么好处吗?

  • 下图说明了整个系统的数据流程: index.php 文件作为前端控制器,初始化运行 CodeIgniter 所需的基本资源; Router 检查 HTTP 请求,以确定如何处理该请求; 如果存在缓存文件,将直接输出到浏览器,不用走下面正常的系统流程; 在加载应用程序控制器之前,对 HTTP 请求以及任何用户提交的数据进行安全检查; 控制器加载模型、核心类库、辅助函数以及其他所有处理请求所需的资源;

  • 我有一个nodejs应用程序,它只不过是一个使用微软botbuilder框架构建的机器人。我创建了azure应用程序服务来托管此应用程序。我想找到一种方法,将所有应用程序日志和web服务器日志(如果可能的话)持久化到某个持久化存储中。就像本地web应用程序一样,我们可以在应用程序服务器上查找日志 在做了一些研究之后,我找到了微软关于这方面的官方文件,但看起来它有以下局限性。 我们不能使用应用程序服

  • 主要内容:XML 文档实例,在 HTML div 元素中显示第一个 CD,实例,添加导航脚本,实例,当点击 CD 时显示专辑信息本章演示一些基于 XML, HTML, XML DOM 和 JavaScript 构建的小型 XML 应用程序。 XML 文档实例 在本应用程序中,我们将使用 "cd_catalog.xml" 文件。 在 HTML div 元素中显示第一个 CD 下面的实例从第一个 CD 元素中获取 XML 数据,然后在 id="showCD" 的 HTML 元素中显示数据。displ