Redis
1.Redis基础配置
- 数据库:是否启用该端
网关名:数据中有指定字段,内容固定为此值
- 请务必确保每个网关中,该名称是全局唯一的
IP地址:Redis的服务器的地址
- 端口:Redis的端口号,默认6379
- 数据库号:Redis的数据库编号,默认0,范围0-15
密码:仅当Redis端开启密码时,使用此选项;
- 请勿在Redis端未开启密码时,勾选此选项,导致网关连接Redis失败
在redis端如果有乱码,请在CMD控制台输入chcp 65001,然后再使用如下命令启动redis-cli --raw
2.Redis实时数据配置
- 实时数据库:是否将实时数据推送至Redis端
- 实时表周期:将数据更新至实时表的周期,单位秒,推荐值:30
- 变值更新:仅在数据值发生变化时,才进行上传操作;推荐此选项,降低网络传输开销
- 定时发送:多长时间发送一次全部数据,无论值是否发生变更
实时接口数据格式:
- hash数据类型,使用hmset进行设置,使用hmget进行查询
- 键值:hash对象的键值,由“网关名_组名_点名”组成
- 如:网关名是gw1,组名是Group1,点名是Tag1,产生Id字段的值是gw1_Group1_Tag
- rvalue字段:具体读到子
- vtype字段:数据类型(str或num)
- r_status字段:是否读取成功
- rinfo:在读取出错时,补充的错误信息
- r_time:该标签的unix时间
- 需要上传的数据点,请用户在完成上述配置后,再自行配置
查询redis中的实时数据:
- 示例:hgetall 键值
实时hash对象数据示例:
3.Redis控制接口配置
- 控制数据库:是否启用控制接口
- 控制表周期:网关间隔多久,查询一次是否有"新的控制需求"
- 单个命令执行间隔:如果设置内容包含多个时,设置下一个子对象前的休眠
- 定时保持:
- 不开启此选项时,满足控制表逻辑时,无论成功与否,仅执行一次
- 开启此选项后,将周期执行"满足控制表逻辑的点"
执行记录:经过控制接口成功执行的操作,是否记录在本地
- 在控制频繁的场景下,不推荐开启此选项
需要控制的数据点,请用户在完成上述配置后,再自行配置
控制接口数据格式:
hash数据类型,使用hmset进行设置,使用hmget进行查询
键值:hash对象的键值,由“网关名_组名_点名”组成
如:网关名是gw1,组名是Group1,点名是Tag1,产生Id字段的值是gw1_Group1_Tag
如果要被设置值的标签仅在控制接口中勾选,用户需要在hash对象中创建该键值
setv字段:由用户更新此字段,即要设置的值
oldv字段:由网关负责更新此字段的值
runtime字段:由用户进行更新
exe_time字段:此标签的执行时间
exe_status字段:执行成功与否
exe_err字段:执行失败的错误原因
控制接口使用的方法:
- 插入一条数据: hmset gw1_group9_A1 setv 123 runtime 1698221430
- 查询结果:hmgetall gw1_group9_A1
控制接口的执行逻辑:
- 当前时间已超过"runtime_v",且"runtime_v"不为0时,将执行该点
- 当"runtime_v"变更,或"setv_v"与"oldv_v"列值不相等时,执行该点
4.Redis告警接口配置
- 告警上传:是否将告警信息推送至Redis端
- 轮询周期:测是否有告警数据的周期,单位秒,推荐值:30
- 告警发生的unix时间作为集合的"分数"
网关将告警信息推送到Redis的zset集合中
- 集合名:由网关名_alarm组成,如网关名是gw1,集合名是gw1_alarm
- 查询所有告警:zrange 集合名 0 -1
告警zrange对象数据示例:
5.Redis的执行日志接口配置
- 日志表名:是否启用将其他端的"执行日志"推送至Redis端
- 日志发生的unix时间作为集合的"分数"
网关将执行日志信息推送到Redis的zset集合中
- 集合名:由网关名_log组成,如网关名是gw1,集合名是gw1_log
- 查询所有执行记录:zrange 集合名 0 -1
日志zrange对象数据示例:
6.常见问题
1.LOADING Redis is loading the dataset in memory
- redis中内存已满,请修改redis配置以及考虑增加服务器内存