主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

数据缓存基础知识

持久性提供了一种在服务器实例上运行的 MATLAB® 代码调用之间缓存数据的机制。持久性服务独立于服务器实例运行,可以手动启动和停止。连接名称将服务器实例链接到持久性服务。持久性服务使用持久性提供程序来存储数据。目前,仅支持将 Redis™ 用作持久性提供程序。连接名称在 MATLAB 应用程序代码中用于在链接的持久性服务中创建数据缓存

数据缓存的典型工作流

步骤命令行仪表板
1.创建文件 mps_cache_config手动创建一个 JSON 文件并将其放在服务器实例的 config 文件夹中。文件名中不要包含 .json 扩展名。自动创建。
2.启动持久服务

使用 mps-cache 启动持久服务。

为了测试目的,您可以使用 mps.cache.control (MATLAB Compiler SDK) 创建持久性服务控制器对象。

  • 创建持久性服务。

  • 使用连接名称将持久性服务添加到服务器实例。

  • 启动持久性服务。

  • 将与持久性服务关联的连接附加到服务器实例。

3.创建数据缓存使用 mps.cache.connect (MATLAB Compiler SDK) 创建数据缓存。使用 mps.cache.connect (MATLAB Compiler SDK) 创建数据缓存。

配置服务器以使用 Redis

创建 Redis 配置文件

从系统命令提示符启动本地服务器实例的持久性服务之前,必须创建一个名为 mps_cache_config(无 .json 扩展名)的 JSON 文件并将其放在服务器实例的 config 文件夹中。如果您使用仪表板管理本地服务器实例和云上的服务器部署,则在创建服务器时会自动创建 mps_cache_config 文件。

mps_cache_config

{
  "Connections": {
    "<connection_name>": {
      "Provider": "Redis",
      "Host": "<hostname>",
      "Port": <port_number>,
      "Key": <access_key>  
    }
  }
}

指定 JSON 文件中的 <connection_name><hostname><port_number>。主机名可以是 localhost,也可以是从 Azure® Redis 缓存资源获取的远程主机名。如果您使用 Azure 对 Redis 进行缓存,则必须指定访问密钥。要使用 Azure Redis 缓存,您需要一个 Microsoft® Azure 帐户。

您可以在文件 mps_cache_config 中指定多个连接。每个连接必须具有唯一的名称和唯一的(主机,端口)对。如果您通过仪表板使用持久性服务,则会自动在服务器实例的 config 文件夹中创建文件 mps_cache_config

为在 Windows 上运行的服务器实例安装 WSL

如果您的 MATLAB Production Server™ 实例在 Windows® 计算机上运行,则需要额外的配置。在 Linux®macOS 上运行的服务器实例不需要以下配置。

  • 您需要安装 Windows Subsystem for Linux (WSL)。有关安装 WSL 的详细信息,请参阅 Microsoft 文档

  • 如果 MATLAB Production Server 软件安装在网络驱动器上,则必须在 WSL 中挂载网络驱动器。

  • 应该为将运行 MATLAB Production Server 的 Windows 用户帐户安装 WSL。

示例:使用数据缓存增加计数器

此示例向您展示如何使用持久性通过数据缓存来增加计数器。该示例介绍了两个工作流:使用 MATLAB 的测试工作流和需要活动服务器实例的部署工作流。

MATLAB Compiler SDK 中测试工作流

  1. 创建使用 Redis 作为持久性提供程序的持久性服务并启动该服务。

    ctrl = mps.cache.control('myRedisConnection','Redis','Port',4519)
    start(ctrl)
    
  2. 编写 MATLAB 代码来创建缓存,然后使用该缓存更新计数器。将文件命名为 myCounter.m

     myCounter.m

  3. 测试计数器。

    for i = 1:5
        y(i) = myCounter('myCache','myRedisConnection');
    end
    y
    y =
    
         0    1     2     3     4

使用 MATLAB Production Server 的部署工作流

在将使用持久性的代码部署到服务器实例之前,请启动持久性服务并将其附加到服务器实例。您可以使用 mps-cache 从系统命令行启动持久性服务,或者按照仪表板中的步骤进行操作。此示例假定您的服务器实例使用默认主机和端口:localhost:9910

  1. 使用 Production Server Compilermcc 打包文件 myCounter.m

  2. 将存档(myCounter.ctf 文件)部署到服务器。

  3. 测试计数器。您可以从 MATLAB 桌面使用 用于 MATLAB 函数执行的 RESTful API 调用服务器。

    rhs = {['myCache'],['myRedisConnection']};
    body = mps.json.encoderequest(rhs,'Nargout',1);
    
    options = weboptions;
    options.ContentType = 'text';
    options.MediaType = 'application/json'; 
    options.Timeout = 30;
    
    for i = 1:5
    response = webwrite('http://localhost:9910/myCounter/myCounter', body, options);
    x(i) = mps.json.decoderesponse(response);
    end
    x = [x{:}]
    x =
    
         0    1     2     3     4

正如预期的那样,测试环境工作流和部署环境工作流的结果是相同的。

另请参阅

(MATLAB Compiler SDK) | (MATLAB Compiler SDK) | (MATLAB Compiler SDK) | (MATLAB Compiler SDK) | (MATLAB Compiler SDK) | (MATLAB Compiler SDK) | (MATLAB Compiler SDK)

主题