对接Redis实现AstroZero对象数据缓存能力
通过应用与Redis对接,实现数据缓存能力。执行对接操作前,请提前获取Redis提供服务的URL地址和登录密码,如何获取请参见查看和修改DCS实例基本信息。
新建Redis连接器
- 参考登录AstroZero新版应用设计器中操作,进入应用设计器。
- 在左侧导航栏中,选择“集成”。
- 单击“连接器”中的“ 连接器实例”,进入连接器实例页面。
- 在左侧导航栏中,选择“数据 > Redis”。
- 在右侧页面单击“+”,设置Redis对接参数。
表1 创建Redis连接器参数说明 参数
说明
名称
新建连接器的名称。命名要求如下:
- 长度不能超过64个字符,包括前缀命名空间的长度。
说明:
名称前的内容为命名空间,在AstroZero中为了避免不同租户间数据的重名,租户在首次创建应用时需要先定义一个命名空间。一个租户只能创建一个命名空间,创建后不支持修改。
- 必须以英文字母开头,只能由英文字母、数字或单下划线组成,且不能以下划线结尾。
地址
Redis提供服务的URL地址。每个地址占一行(如图1),集群模式下至少填写两个地址。
密码
连接Redis的密码。
打包当前配置
选中该选项后,应用打包时会将当前配置的连接器信息一并打出。例如,如果应用包发布到运行环境,当前配置默认会被同步到运行环境中。如果不勾选,则内容不会打包发布到运行环境,此时需要您参考管理应用中的连接器,创建对应的连接器。
默认为选中,对信息敏感的场景,建议不勾选。
- 长度不能超过64个字符,包括前缀命名空间的长度。
- 设置完成后,单击“保存”。
在脚本中调用连接器
在脚本中调用连接器,实现与Redis的对接。
- 参考创建空白AstroZero脚本中操作,创建一个空白脚本。
- 在脚本编辑器中,输入如下代码,实现一个Redis的读写操作,并记录日志。
import * as redis from 'redis'; try { let cli = redis.newClient("NS__Redis1"); // cli.set("A", "B", 0); console.log(cli.get("A")); console.log(cli.set("some_non_exist_key", "1", 0)); console.log(cli.get("some_non_exist_key")); console.log(cli.set("some_non_exist_key", "2", 0)); console.log(cli.get("some_non_exist_key")); } catch (e) { console.log(e.message); }
其中,redis.newClient("NS__Redis1")中“NS__Redis1”为连接器的名称。
- 单击脚本编辑器页面上方的,保存脚本。
- 保存成功后,单击,运行脚本。
- 不用设置输入参数,直接单击测试窗口右上角的。
- 在日志页签,可查看到已刷新了Redis中数据。
0829 14:09:10.889|debug|vm[7]>>> AstroZero 1.2.8 - Production on 2019-08-28 14:28:06 1e6786b57891a6512b6922bf02cc90ad972a4e9a debug (<unknown>.ts:0) 0829 14:09:10.889|debug|vm[7]>>> script: NS__testsingleredis 1.0.1 (<unknown>.ts:0) 0829 14:09:10.889|debug|vm[7]>>> locale: zh_CN (<unknown>.ts:0) 0829 14:09:10.889|debug|vm[7]>>> timezone: (GMT+08:00) China Standard Time (Asia/A) (<unknown>.ts:0) 0829 14:09:10.897|debug|vm[7]>>> undefined (NS__testsingleredis.ts:6) 0829 14:09:10.898|debug|vm[7]>>> true (NS__testsingleredis.ts:7) 0829 14:09:10.899|debug|vm[7]>>> 1 (NS__testsingleredis.ts:8) 0829 14:09:10.901|debug|vm[7]>>> true (NS__testsingleredis.ts:9) 0829 14:09:10.902|debug|vm[7]>>> 2 (NS__testsingleredis.ts:10)