# 项目依赖服务部署指南 本项目依赖于 $\text{PostgreSQL}$ 数据库和 $\text{Redis Stack Server}$(包含 $\text{Redisearch}$ 等模块)部署文档将使用 $\text{Docker}$ 容器化技术部署这两个依赖服务 ## 前提条件 1. 已安装 $\text{Docker}$ 2. 下载相关容器镜像 3. 确保主机的 $\text{5432}$ 端口($\text{Postgres}$)和 $\text{6379}$ 端口($\text{Redis}$)未被占用 ### 1\. 部署 PostgreSQL 数据库 使用官方的 `postgres:13.16` 镜像,并设置默认的用户、密码和端口 #### 1.1 部署命令 运行以下命令启动 $\text{PostgreSQL}$ 容器 ```bash docker run --name postgres \ -e POSTGRES_USER=postgres \ -e POSTGRES_PASSWORD=coslight \ -p 5432:5432 \ -d postgres:13.16 ``` #### 1.2 连接信息 | 参数 | 值 | 说明 | | :--- | :--- | :--- | | **容器名称** | `postgres` | 容器名 | | **镜像版本** | `postgres:13.16` | 镜像名 | | **主机端口** | `5432` | 外部应用连接使用的端口 | | **用户名** | `postgres` | 默认超级用户 | | **密码** | `coslight` | 配置的密码 | #### 1.3 状态检查 要确认容器是否正在运行,请执行 ```bash # 检查容器启动状态 docker ps -a |grep postgres # 检查容器启动日志信息 docker logs postgres ``` ### 2\. 部署 Redis Stack Server 我们将使用 `redis/redis-stack-server:latest` 镜像该镜像内置了 $\text{Redisearch}$ 模块,用于 $\text{ModelRT}$ 项目中补全功能 #### 2.1 部署命令 运行以下命令启动 $\text{Redis Stack Server}$ 容器 ```bash docker run --name redis -p 6379:6379 \ -d redis/redis-stack-server:latest ``` #### 2.2 连接信息 | 参数 | 值 | 说明 | | :--- | :--- | :--- | | **容器名称** | `redis` | 容器名 | | **镜像版本** | `redis/redis-stack-server:latest` | 镜像名 | | **主机端口** | `6379` | 外部应用连接使用的端口 | | **地址** | `localhost:6379` | | | **密码** | **无** | 默认未设置密码 | > **注意:** 生产环境中建议使用 `-e REDIS_PASSWORD=` 参数来设置 $\text{Redis}$ 访问密码 #### 2.3 状态检查 要确认容器是否正在运行,请执行 ```bash # 检查容器启动状态 docker ps -a |grep redis # 检查容器启动日志信息 docker logs redis ``` #### 2.4 数据注入 测试数据注入 ##### 2.4.1 Postgres数据注入 ```SQL INSERT INTO public.topologic(flag, uuid_from, uuid_to, context, description, op, ts) VALUES (1, '00000000-0000-0000-0000-000000000000', '70c190f2-8a60-42a9-b143-ec5f87e0aa6b', '{}', '', 1, CURRENT_TIMESTAMP), (1, '70c190f2-8a60-42a9-b143-ec5f87e0aa6b', '10f155cf-bd27-4557-85b2-d126b6e2657f', '{}', '', 1, CURRENT_TIMESTAMP), (1, '70c190f2-8a60-42a9-b143-ec5f87e0aa6b', 'e32bc0be-67f4-4d79-a5da-eaa40a5bd77d', '{}', '', 1, CURRENT_TIMESTAMP), (1, '70c190f2-8a60-42a9-b143-ec5f87e0aa6b', '70c190f2-8a75-42a9-b166-ec5f87e0aa6b', '{}', '', 1, CURRENT_TIMESTAMP), (1, 'e32bc0be-67f4-4d79-a5da-eaa40a5bd77d', '70c200f2-8a75-42a9-c166-bf5f87e0aa6b', '{}', '', 1, CURRENT_TIMESTAMP), (1, 'e32bc0be-67f4-4d79-a5da-eaa40a5bd77d', '968dd6e6-faec-4f78-b58a-d6e68426b09e', '{}', '', 1, CURRENT_TIMESTAMP), (1, 'e32bc0be-67f4-4d79-a5da-eaa40a5bd77d', '968dd6e6-faec-4f78-b58a-d6e68426b08e', '{}', '', 1, CURRENT_TIMESTAMP); INSERT INTO public.bay (bay_uuid, name, tag, type, unom, fla, capacity, description, in_service, state, grid, zone, station, business, context, from_uuids, to_uuids, dev_protect, dev_fault_record, dev_status, dev_dyn_sense, dev_instruct, dev_etc, components, op, ts) VALUES ( '18e71a24-694a-43fa-93a7-c4d02a27d1bc', '', '', '', -1, -1, -1, '', false, -1, '', '', '', '{}', '{}', '[]', '[]', '[]', '[]', '[]', '[]', '[]', '[]', ARRAY['968dd6e6-faec-4f78-b58a-d6e68426b09e', '968dd6e6-faec-4f78-b58a-d6e68426b08e']::uuid[], -1, CURRENT_TIMESTAMP ); INSERT INTO public.component (global_uuid, nspath, tag, name, model_name, description, grid, zone, station, type, in_service, state, status, connection, label, context, op, ts) VALUES ( '968dd6e6-faec-4f78-b58a-d6e68426b09e', 'ns1', 'tag1', 'component1', '', '', 'grid1', 'zone1', 'station1', -1, false, -1, -1, '{}', '{}', '{}', -1, CURRENT_TIMESTAMP ), ( '968dd6e6-faec-4f78-b58a-d6e68426b08e', 'ns1', 'tag2', 'component2', '', '', 'grid1', 'zone1', 'station1', -1, false, -1, -1, '{}', '{}', '{}', -1, CURRENT_TIMESTAMP ); INSERT INTO public.measurement (tag, name, type, size, data_source, event_plan, bay_uuid, component_uuid, op, ts) VALUES ( 'I11_C_rms', '45母甲侧互连电流C相1', -1, 200, '{"type": 1, "io_address": {"device": "ssu001", "channel": "Telemetry1", "station": "001"}}', '{"cause": {"up": 55.0, "down": 45.0}, "action": {"command": "warning", "parameters": ["I段母线甲侧互连电流C相1"]}, "enable": true}', '18e71a24-694a-43fa-93a7-c4d02a27d1bc', '968dd6e6-faec-4f78-b58a-d6e68426b09e', -1, CURRENT_TIMESTAMP ); ``` ##### 2.4.2 Redis数据注入 Redis数据脚本 ```Lua redis.call('SADD', 'grid_keys', 'grid1', 'grid2', 'grid3') redis.call('SADD', 'zone_keys', 'zone1_1', 'zone1_2', 'zone1_3', 'zone2_1', 'zone2_2', 'zone2_3', 'zone3_1', 'zone3_2', 'zone3_3') redis.call('SADD', 'station_keys', 'station1_1_1', 'station1_1_2', 'station1_1_3', 'station1_2_1', 'station1_2_2', 'station1_2_3', 'station1_3_1', 'station1_3_2', 'station1_3_3') redis.call('SADD', 'station_keys', 'station2_1_1', 'station2_1_2', 'station2_1_3', 'station2_2_1', 'station2_2_2', 'station2_2_3', 'station2_3_1', 'station2_3_2', 'station2_3_3') redis.call('SADD', 'station_keys', 'station3_1_1', 'station3_1_2', 'station3_1_3', 'station3_2_1', 'station3_2_2', 'station3_2_3', 'station3_3_1', 'station3_3_2', 'station3_3_3') redis.call('SADD', 'component_nspath_keys', -- 对应 station1_1_1 'ns1_1_1_1', 'ns1_1_1_2', 'ns1_1_1_3', -- 对应 station1_1_2 'ns1_1_2_1', 'ns1_1_2_2', 'ns1_1_2_3', -- 对应 station1_1_3 'ns1_1_3_1', 'ns1_1_3_2', 'ns1_1_3_3', -- 对应 station1_2_1 'ns1_2_1_1', 'ns1_2_1_2', 'ns1_2_1_3', -- 对应 station1_2_2 'ns1_2_2_1', 'ns1_2_2_2', 'ns1_2_2_3', -- 对应 station1_2_3 'ns1_2_3_1', 'ns1_2_3_2', 'ns1_2_3_3', -- 对应 station1_3_1 'ns1_3_1_1', 'ns1_3_1_2', 'ns1_3_1_3', -- 对应 station1_3_2 'ns1_3_2_1', 'ns1_3_2_2', 'ns1_3_2_3', -- 对应 station1_3_3 'ns1_3_3_1', 'ns1_3_3_2', 'ns1_3_3_3' ) redis.call('SADD', 'component_nspath_keys', -- 对应 station2_1_1 'ns2_1_1_1', 'ns2_1_1_2', 'ns2_1_1_3', -- 对应 station2_1_2 'ns2_1_2_1', 'ns2_1_2_2', 'ns2_1_2_3', -- 对应 station2_1_3 'ns2_1_3_1', 'ns2_1_3_2', 'ns2_1_3_3', -- 对应 station2_2_1 'ns2_2_1_1', 'ns2_2_1_2', 'ns2_2_1_3', -- 对应 station2_2_2 'ns2_2_2_1', 'ns2_2_2_2', 'ns2_2_2_3', -- 对应 station2_2_3 'ns2_2_3_1', 'ns2_2_3_2', 'ns2_2_3_3', -- 对应 station2_3_1 'ns2_3_1_1', 'ns2_3_1_2', 'ns2_3_1_3', -- 对应 station2_3_2 'ns2_3_2_1', 'ns2_3_2_2', 'ns2_3_2_3', -- 对应 station2_3_3 'ns2_3_3_1', 'ns2_3_3_2', 'ns2_3_3_3' ) redis.call('SADD', 'component_nspath_keys', -- 对应 station3_1_1 'ns3_1_1_1', 'ns3_1_1_2', 'ns3_1_1_3', -- 对应 station3_1_2 'ns3_1_2_1', 'ns3_1_2_2', 'ns3_1_2_3', -- 对应 station3_1_3 'ns3_1_3_1', 'ns3_1_3_2', 'ns3_1_3_3', -- 对应 station3_2_1 'ns3_2_1_1', 'ns3_2_1_2', 'ns3_2_1_3', -- 对应 station3_2_2 'ns3_2_2_1', 'ns3_2_2_2', 'ns3_2_2_3', -- 对应 station3_2_3 'ns3_2_3_1', 'ns3_2_3_2', 'ns3_2_3_3', -- 对应 station3_3_1 'ns3_3_1_1', 'ns3_3_1_2', 'ns3_3_1_3', -- 对应 station3_3_2 'ns3_3_2_1', 'ns3_3_2_2', 'ns3_3_2_3', -- 对应 station3_3_3 'ns3_3_3_1', 'ns3_3_3_2', 'ns3_3_3_3' ) redis.call('SADD', 'component_tag_keys', 'cmptag1_1_1_1_1', 'cmptag1_1_1_1_2', 'cmptag1_1_1_1_3', 'cmptag1_1_1_2_1', 'cmptag1_1_1_2_2', 'cmptag1_1_1_2_3', 'cmptag1_1_1_3_1', 'cmptag1_1_1_3_2', 'cmptag1_1_1_3_3', 'cmptag1_1_2_1_1', 'cmptag1_1_2_1_2', 'cmptag1_1_2_1_3', 'cmptag1_1_2_2_1', 'cmptag1_1_2_2_2', 'cmptag1_1_2_2_3', 'cmptag1_1_2_3_1', 'cmptag1_1_2_3_2', 'cmptag1_1_2_3_3', 'cmptag1_1_3_1_1', 'cmptag1_1_3_1_2', 'cmptag1_1_3_1_3', 'cmptag1_1_3_2_1', 'cmptag1_1_3_2_2', 'cmptag1_1_3_2_3', 'cmptag1_1_3_3_1', 'cmptag1_1_3_3_2', 'cmptag1_1_3_3_3', 'cmptag1_2_1_1_1', 'cmptag1_2_1_1_2', 'cmptag1_2_1_1_3', 'cmptag1_2_1_2_1', 'cmptag1_2_1_2_2', 'cmptag1_2_1_2_3', 'cmptag1_2_1_3_1', 'cmptag1_2_1_3_2', 'cmptag1_2_1_3_3', 'cmptag1_2_2_1_1', 'cmptag1_2_2_1_2', 'cmptag1_2_2_1_3', 'cmptag1_2_2_2_1', 'cmptag1_2_2_2_2', 'cmptag1_2_2_2_3', 'cmptag1_2_2_3_1', 'cmptag1_2_2_3_2', 'cmptag1_2_2_3_3', 'cmptag1_2_3_1_1', 'cmptag1_2_3_1_2', 'cmptag1_2_3_1_3', 'cmptag1_2_3_2_1', 'cmptag1_2_3_2_2', 'cmptag1_2_3_2_3', 'cmptag1_2_3_3_1', 'cmptag1_2_3_3_2', 'cmptag1_2_3_3_3', 'cmptag1_3_1_1_1', 'cmptag1_3_1_1_2', 'cmptag1_3_1_1_3', 'cmptag1_3_1_2_1', 'cmptag1_3_1_2_2', 'cmptag1_3_1_2_3', 'cmptag1_3_1_3_1', 'cmptag1_3_1_3_2', 'cmptag1_3_1_3_3', 'cmptag1_3_2_1_1', 'cmptag1_3_2_1_2', 'cmptag1_3_2_1_3', 'cmptag1_3_2_2_1', 'cmptag1_3_2_2_2', 'cmptag1_3_2_2_3', 'cmptag1_3_2_3_1', 'cmptag1_3_2_3_2', 'cmptag1_3_2_3_3', 'cmptag1_3_3_1_1', 'cmptag1_3_3_1_2', 'cmptag1_3_3_1_3', 'cmptag1_3_3_2_1', 'cmptag1_3_3_2_2', 'cmptag1_3_3_2_3', 'cmptag1_3_3_3_1', 'cmptag1_3_3_3_2', 'cmptag1_3_3_3_3' ) redis.call('SADD', 'component_tag_keys', 'cmptag2_1_1_1_1', 'cmptag2_1_1_1_2', 'cmptag2_1_1_1_3', 'cmptag2_1_1_2_1', 'cmptag2_1_1_2_2', 'cmptag2_1_1_2_3', 'cmptag2_1_1_3_1', 'cmptag2_1_1_3_2', 'cmptag2_1_1_3_3', 'cmptag2_1_2_1_1', 'cmptag2_1_2_1_2', 'cmptag2_1_2_1_3', 'cmptag2_1_2_2_1', 'cmptag2_1_2_2_2', 'cmptag2_1_2_2_3', 'cmptag2_1_2_3_1', 'cmptag2_1_2_3_2', 'cmptag2_1_2_3_3', 'cmptag2_1_3_1_1', 'cmptag2_1_3_1_2', 'cmptag2_1_3_1_3', 'cmptag2_1_3_2_1', 'cmptag2_1_3_2_2', 'cmptag2_1_3_2_3', 'cmptag2_1_3_3_1', 'cmptag2_1_3_3_2', 'cmptag2_1_3_3_3', 'cmptag2_2_1_1_1', 'cmptag2_2_1_1_2', 'cmptag2_2_1_1_3', 'cmptag2_2_1_2_1', 'cmptag2_2_1_2_2', 'cmptag2_2_1_2_3', 'cmptag2_2_1_3_1', 'cmptag2_2_1_3_2', 'cmptag2_2_1_3_3', 'cmptag2_2_2_1_1', 'cmptag2_2_2_1_2', 'cmptag2_2_2_1_3', 'cmptag2_2_2_2_1', 'cmptag2_2_2_2_2', 'cmptag2_2_2_2_3', 'cmptag2_2_2_3_1', 'cmptag2_2_2_3_2', 'cmptag2_2_2_3_3', 'cmptag2_2_3_1_1', 'cmptag2_2_3_1_2', 'cmptag2_2_3_1_3', 'cmptag2_2_3_2_1', 'cmptag2_2_3_2_2', 'cmptag2_2_3_2_3', 'cmptag2_2_3_3_1', 'cmptag2_2_3_3_2', 'cmptag2_2_3_3_3', 'cmptag2_3_1_1_1', 'cmptag2_3_1_1_2', 'cmptag2_3_1_1_3', 'cmptag2_3_1_2_1', 'cmptag2_3_1_2_2', 'cmptag2_3_1_2_3', 'cmptag2_3_1_3_1', 'cmptag2_3_1_3_2', 'cmptag2_3_1_3_3', 'cmptag2_3_2_1_1', 'cmptag2_3_2_1_2', 'cmptag2_3_2_1_3', 'cmptag2_3_2_2_1', 'cmptag2_3_2_2_2', 'cmptag2_3_2_2_3', 'cmptag2_3_2_3_1', 'cmptag2_3_2_3_2', 'cmptag2_3_2_3_3', 'cmptag2_3_3_1_1', 'cmptag2_3_3_1_2', 'cmptag2_3_3_1_3', 'cmptag2_3_3_2_1', 'cmptag2_3_3_2_2', 'cmptag2_3_3_2_3', 'cmptag2_3_3_3_1', 'cmptag2_3_3_3_2', 'cmptag2_3_3_3_3' ) redis.call('SADD', 'component_tag_keys', 'cmptag3_1_1_1_1', 'cmptag3_1_1_1_2', 'cmptag3_1_1_1_3', 'cmptag3_1_1_2_1', 'cmptag3_1_1_2_2', 'cmptag3_1_1_2_3', 'cmptag3_1_1_3_1', 'cmptag3_1_1_3_2', 'cmptag3_1_1_3_3', 'cmptag3_1_2_1_1', 'cmptag3_1_2_1_2', 'cmptag3_1_2_1_3', 'cmptag3_1_2_2_1', 'cmptag3_1_2_2_2', 'cmptag3_1_2_2_3', 'cmptag3_1_2_3_1', 'cmptag3_1_2_3_2', 'cmptag3_1_2_3_3', 'cmptag3_1_3_1_1', 'cmptag3_1_3_1_2', 'cmptag3_1_3_1_3', 'cmptag3_1_3_2_1', 'cmptag3_1_3_2_2', 'cmptag3_1_3_2_3', 'cmptag3_1_3_3_1', 'cmptag3_1_3_3_2', 'cmptag3_1_3_3_3', 'cmptag3_2_1_1_1', 'cmptag3_2_1_1_2', 'cmptag3_2_1_1_3', 'cmptag3_2_1_2_1', 'cmptag3_2_1_2_2', 'cmptag3_2_1_2_3', 'cmptag3_2_1_3_1', 'cmptag3_2_1_3_2', 'cmptag3_2_1_3_3', 'cmptag3_2_2_1_1', 'cmptag3_2_2_1_2', 'cmptag3_2_2_1_3', 'cmptag3_2_2_2_1', 'cmptag3_2_2_2_2', 'cmptag3_2_2_2_3', 'cmptag3_2_2_3_1', 'cmptag3_2_2_3_2', 'cmptag3_2_2_3_3', 'cmptag3_2_3_1_1', 'cmptag3_2_3_1_2', 'cmptag3_2_3_1_3', 'cmptag3_2_3_2_1', 'cmptag3_2_3_2_2', 'cmptag3_2_3_2_3', 'cmptag3_2_3_3_1', 'cmptag3_2_3_3_2', 'cmptag3_2_3_3_3', 'cmptag3_3_1_1_1', 'cmptag3_3_1_1_2', 'cmptag3_3_1_1_3', 'cmptag3_3_1_2_1', 'cmptag3_3_1_2_2', 'cmptag3_3_1_2_3', 'cmptag3_3_1_3_1', 'cmptag3_3_1_3_2', 'cmptag3_3_1_3_3', 'cmptag3_3_2_1_1', 'cmptag3_3_2_1_2', 'cmptag3_3_2_1_3', 'cmptag3_3_2_2_1', 'cmptag3_3_2_2_2', 'cmptag3_3_2_2_3', 'cmptag3_3_2_3_1', 'cmptag3_3_2_3_2', 'cmptag3_3_2_3_3', 'cmptag3_3_3_1_1', 'cmptag3_3_3_1_2', 'cmptag3_3_3_1_3', 'cmptag3_3_3_2_1', 'cmptag3_3_3_2_2', 'cmptag3_3_3_2_3', 'cmptag3_3_3_3_1', 'cmptag3_3_3_3_2', 'cmptag3_3_3_3_3' ) redis.call('SADD', 'config_keys', 'component', 'base_extend', 'rated', 'setup', 'model', 'stable', 'bay', 'craft', 'integrity', 'behavior') redis.call('SADD', 'measurement_tag_keys', 'meas1_1_1_1_1_1', 'meas1_1_1_1_1_2', 'meas1_1_1_1_1_3', 'meas1_1_1_1_2_1', 'meas1_1_1_1_2_2', 'meas1_1_1_1_2_3', 'meas1_1_1_1_3_1', 'meas1_1_1_1_3_2', 'meas1_1_1_1_3_3', 'meas1_1_1_2_1_1', 'meas1_1_1_2_1_2', 'meas1_1_1_2_1_3', 'meas1_1_1_2_2_1', 'meas1_1_1_2_2_2', 'meas1_1_1_2_2_3', 'meas1_1_1_2_3_1', 'meas1_1_1_2_3_2', 'meas1_1_1_2_3_3', 'meas1_1_1_3_1_1', 'meas1_1_1_3_1_2', 'meas1_1_1_3_1_3', 'meas1_1_1_3_2_1', 'meas1_1_1_3_2_2', 'meas1_1_1_3_2_3', 'meas1_1_1_3_3_1', 'meas1_1_1_3_3_2', 'meas1_1_1_3_3_3', 'meas1_1_2_1_1_1', 'meas1_1_2_1_1_2', 'meas1_1_2_1_1_3', 'meas1_1_2_1_2_1', 'meas1_1_2_1_2_2', 'meas1_1_2_1_2_3', 'meas1_1_2_1_3_1', 'meas1_1_2_1_3_2', 'meas1_1_2_1_3_3', 'meas1_1_2_2_1_1', 'meas1_1_2_2_1_2', 'meas1_1_2_2_1_3', 'meas1_1_2_2_2_1', 'meas1_1_2_2_2_2', 'meas1_1_2_2_2_3', 'meas1_1_2_2_3_1', 'meas1_1_2_2_3_2', 'meas1_1_2_2_3_3', 'meas1_1_2_3_1_1', 'meas1_1_2_3_1_2', 'meas1_1_2_3_1_3', 'meas1_1_2_3_2_1', 'meas1_1_2_3_2_2', 'meas1_1_2_3_2_3', 'meas1_1_2_3_3_1', 'meas1_1_2_3_3_2', 'meas1_1_2_3_3_3', 'meas1_1_3_1_1_1', 'meas1_1_3_1_1_2', 'meas1_1_3_1_1_3', 'meas1_1_3_1_2_1', 'meas1_1_3_1_2_2', 'meas1_1_3_1_2_3', 'meas1_1_3_1_3_1', 'meas1_1_3_1_3_2', 'meas1_1_3_1_3_3', 'meas1_1_3_2_1_1', 'meas1_1_3_2_1_2', 'meas1_1_3_2_1_3', 'meas1_1_3_2_2_1', 'meas1_1_3_2_2_2', 'meas1_1_3_2_2_3', 'meas1_1_3_2_3_1', 'meas1_1_3_2_3_2', 'meas1_1_3_2_3_3', 'meas1_1_3_3_1_1', 'meas1_1_3_3_1_2', 'meas1_1_3_3_1_3', 'meas1_1_3_3_2_1', 'meas1_1_3_3_2_2', 'meas1_1_3_3_2_3', 'meas1_1_3_3_3_1', 'meas1_1_3_3_3_2', 'meas1_1_3_3_3_3', 'meas1_2_1_1_1_1', 'meas1_2_1_1_1_2', 'meas1_2_1_1_1_3', 'meas1_2_1_1_2_1', 'meas1_2_1_1_2_2', 'meas1_2_1_1_2_3', 'meas1_2_1_1_3_1', 'meas1_2_1_1_3_2', 'meas1_2_1_1_3_3', 'meas1_2_1_2_1_1', 'meas1_2_1_2_1_2', 'meas1_2_1_2_1_3', 'meas1_2_1_2_2_1', 'meas1_2_1_2_2_2', 'meas1_2_1_2_2_3', 'meas1_2_1_2_3_1', 'meas1_2_1_2_3_2', 'meas1_2_1_2_3_3', 'meas1_2_1_3_1_1', 'meas1_2_1_3_1_2', 'meas1_2_1_3_1_3', 'meas1_2_1_3_2_1', 'meas1_2_1_3_2_2', 'meas1_2_1_3_2_3', 'meas1_2_1_3_3_1', 'meas1_2_1_3_3_2', 'meas1_2_1_3_3_3', 'meas1_2_2_1_1_1', 'meas1_2_2_1_1_2', 'meas1_2_2_1_1_3', 'meas1_2_2_1_2_1', 'meas1_2_2_1_2_2', 'meas1_2_2_1_2_3', 'meas1_2_2_1_3_1', 'meas1_2_2_1_3_2', 'meas1_2_2_1_3_3', 'meas1_2_2_2_1_1', 'meas1_2_2_2_1_2', 'meas1_2_2_2_1_3', 'meas1_2_2_2_2_1', 'meas1_2_2_2_2_2', 'meas1_2_2_2_2_3', 'meas1_2_2_2_3_1', 'meas1_2_2_2_3_2', 'meas1_2_2_2_3_3', 'meas1_2_2_3_1_1', 'meas1_2_2_3_1_2', 'meas1_2_2_3_1_3', 'meas1_2_2_3_2_1', 'meas1_2_2_3_2_2', 'meas1_2_2_3_2_3', 'meas1_2_2_3_3_1', 'meas1_2_2_3_3_2', 'meas1_2_2_3_3_3', 'meas1_2_3_1_1_1', 'meas1_2_3_1_1_2', 'meas1_2_3_1_1_3', 'meas1_2_3_1_2_1', 'meas1_2_3_1_2_2', 'meas1_2_3_1_2_3', 'meas1_2_3_1_3_1', 'meas1_2_3_1_3_2', 'meas1_2_3_1_3_3', 'meas1_2_3_2_1_1', 'meas1_2_3_2_1_2', 'meas1_2_3_2_1_3', 'meas1_2_3_2_2_1', 'meas1_2_3_2_2_2', 'meas1_2_3_2_2_3', 'meas1_2_3_2_3_1', 'meas1_2_3_2_3_2', 'meas1_2_3_2_3_3', 'meas1_2_3_3_1_1', 'meas1_2_3_3_1_2', 'meas1_2_3_3_1_3', 'meas1_2_3_3_2_1', 'meas1_2_3_3_2_2', 'meas1_2_3_3_2_3', 'meas1_2_3_3_3_1', 'meas1_2_3_3_3_2', 'meas1_2_3_3_3_3', 'meas1_3_1_1_1_1', 'meas1_3_1_1_1_2', 'meas1_3_1_1_1_3', 'meas1_3_1_1_2_1', 'meas1_3_1_1_2_2', 'meas1_3_1_1_2_3', 'meas1_3_1_1_3_1', 'meas1_3_1_1_3_2', 'meas1_3_1_1_3_3', 'meas1_3_1_2_1_1', 'meas1_3_1_2_1_2', 'meas1_3_1_2_1_3', 'meas1_3_1_2_2_1', 'meas1_3_1_2_2_2', 'meas1_3_1_2_2_3', 'meas1_3_1_2_3_1', 'meas1_3_1_2_3_2', 'meas1_3_1_2_3_3', 'meas1_3_1_3_1_1', 'meas1_3_1_3_1_2', 'meas1_3_1_3_1_3', 'meas1_3_1_3_2_1', 'meas1_3_1_3_2_2', 'meas1_3_1_3_2_3', 'meas1_3_1_3_3_1', 'meas1_3_1_3_3_2', 'meas1_3_1_3_3_3', 'meas1_3_2_1_1_1', 'meas1_3_2_1_1_2', 'meas1_3_2_1_1_3', 'meas1_3_2_1_2_1', 'meas1_3_2_1_2_2', 'meas1_3_2_1_2_3', 'meas1_3_2_1_3_1', 'meas1_3_2_1_3_2', 'meas1_3_2_1_3_3', 'meas1_3_2_2_1_1', 'meas1_3_2_2_1_2', 'meas1_3_2_2_1_3', 'meas1_3_2_2_2_1', 'meas1_3_2_2_2_2', 'meas1_3_2_2_2_3', 'meas1_3_2_2_3_1', 'meas1_3_2_2_3_2', 'meas1_3_2_2_3_3', 'meas1_3_2_3_1_1', 'meas1_3_2_3_1_2', 'meas1_3_2_3_1_3', 'meas1_3_2_3_2_1', 'meas1_3_2_3_2_2', 'meas1_3_2_3_2_3', 'meas1_3_2_3_3_1', 'meas1_3_2_3_3_2', 'meas1_3_2_3_3_3', 'meas1_3_3_1_1_1', 'meas1_3_3_1_1_2', 'meas1_3_3_1_1_3', 'meas1_3_3_1_2_1', 'meas1_3_3_1_2_2', 'meas1_3_3_1_2_3', 'meas1_3_3_1_3_1', 'meas1_3_3_1_3_2', 'meas1_3_3_1_3_3', 'meas1_3_3_2_1_1', 'meas1_3_3_2_1_2', 'meas1_3_3_2_1_3', 'meas1_3_3_2_2_1', 'meas1_3_3_2_2_2', 'meas1_3_3_2_2_3', 'meas1_3_3_2_3_1', 'meas1_3_3_2_3_2', 'meas1_3_3_2_3_3', 'meas1_3_3_3_1_1', 'meas1_3_3_3_1_2', 'meas1_3_3_3_1_3', 'meas1_3_3_3_2_1', 'meas1_3_3_3_2_2', 'meas1_3_3_3_2_3', 'meas1_3_3_3_3_1', 'meas1_3_3_3_3_2', 'meas1_3_3_3_3_3' ) redis.call('SADD', 'measurement_tag_keys', 'meas2_1_1_1_1_1', 'meas2_1_1_1_1_2', 'meas2_1_1_1_1_3', 'meas2_1_1_1_2_1', 'meas2_1_1_1_2_2', 'meas2_1_1_1_2_3', 'meas2_1_1_1_3_1', 'meas2_1_1_1_3_2', 'meas2_1_1_1_3_3', 'meas2_1_1_2_1_1', 'meas2_1_1_2_1_2', 'meas2_1_1_2_1_3', 'meas2_1_1_2_2_1', 'meas2_1_1_2_2_2', 'meas2_1_1_2_2_3', 'meas2_1_1_2_3_1', 'meas2_1_1_2_3_2', 'meas2_1_1_2_3_3', 'meas2_1_1_3_1_1', 'meas2_1_1_3_1_2', 'meas2_1_1_3_1_3', 'meas2_1_1_3_2_1', 'meas2_1_1_3_2_2', 'meas2_1_1_3_2_3', 'meas2_1_1_3_3_1', 'meas2_1_1_3_3_2', 'meas2_1_1_3_3_3', 'meas2_1_2_1_1_1', 'meas2_1_2_1_1_2', 'meas2_1_2_1_1_3', 'meas2_1_2_1_2_1', 'meas2_1_2_1_2_2', 'meas2_1_2_1_2_3', 'meas2_1_2_1_3_1', 'meas2_1_2_1_3_2', 'meas2_1_2_1_3_3', 'meas2_1_2_2_1_1', 'meas2_1_2_2_1_2', 'meas2_1_2_2_1_3', 'meas2_1_2_2_2_1', 'meas2_1_2_2_2_2', 'meas2_1_2_2_2_3', 'meas2_1_2_2_3_1', 'meas2_1_2_2_3_2', 'meas2_1_2_2_3_3', 'meas2_1_2_3_1_1', 'meas2_1_2_3_1_2', 'meas2_1_2_3_1_3', 'meas2_1_2_3_2_1', 'meas2_1_2_3_2_2', 'meas2_1_2_3_2_3', 'meas2_1_2_3_3_1', 'meas2_1_2_3_3_2', 'meas2_1_2_3_3_3', 'meas2_1_3_1_1_1', 'meas2_1_3_1_1_2', 'meas2_1_3_1_1_3', 'meas2_1_3_1_2_1', 'meas2_1_3_1_2_2', 'meas2_1_3_1_2_3', 'meas2_1_3_1_3_1', 'meas2_1_3_1_3_2', 'meas2_1_3_1_3_3', 'meas2_1_3_2_1_1', 'meas2_1_3_2_1_2', 'meas2_1_3_2_1_3', 'meas2_1_3_2_2_1', 'meas2_1_3_2_2_2', 'meas2_1_3_2_2_3', 'meas2_1_3_2_3_1', 'meas2_1_3_2_3_2', 'meas2_1_3_2_3_3', 'meas2_1_3_3_1_1', 'meas2_1_3_3_1_2', 'meas2_1_3_3_1_3', 'meas2_1_3_3_2_1', 'meas2_1_3_3_2_2', 'meas2_1_3_3_2_3', 'meas2_1_3_3_3_1', 'meas2_1_3_3_3_2', 'meas2_1_3_3_3_3', 'meas2_2_1_1_1_1', 'meas2_2_1_1_1_2', 'meas2_2_1_1_1_3', 'meas2_2_1_1_2_1', 'meas2_2_1_1_2_2', 'meas2_2_1_1_2_3', 'meas2_2_1_1_3_1', 'meas2_2_1_1_3_2', 'meas2_2_1_1_3_3', 'meas2_2_1_2_1_1', 'meas2_2_1_2_1_2', 'meas2_2_1_2_1_3', 'meas2_2_1_2_2_1', 'meas2_2_1_2_2_2', 'meas2_2_1_2_2_3', 'meas2_2_1_2_3_1', 'meas2_2_1_2_3_2', 'meas2_2_1_2_3_3', 'meas2_2_1_3_1_1', 'meas2_2_1_3_1_2', 'meas2_2_1_3_1_3', 'meas2_2_1_3_2_1', 'meas2_2_1_3_2_2', 'meas2_2_1_3_2_3', 'meas2_2_1_3_3_1', 'meas2_2_1_3_3_2', 'meas2_2_1_3_3_3', 'meas2_2_2_1_1_1', 'meas2_2_2_1_1_2', 'meas2_2_2_1_1_3', 'meas2_2_2_1_2_1', 'meas2_2_2_1_2_2', 'meas2_2_2_1_2_3', 'meas2_2_2_1_3_1', 'meas2_2_2_1_3_2', 'meas2_2_2_1_3_3', 'meas2_2_2_2_1_1', 'meas2_2_2_2_1_2', 'meas2_2_2_2_1_3', 'meas2_2_2_2_2_1', 'meas2_2_2_2_2_2', 'meas2_2_2_2_2_3', 'meas2_2_2_2_3_1', 'meas2_2_2_2_3_2', 'meas2_2_2_2_3_3', 'meas2_2_2_3_1_1', 'meas2_2_2_3_1_2', 'meas2_2_2_3_1_3', 'meas2_2_2_3_2_1', 'meas2_2_2_3_2_2', 'meas2_2_2_3_2_3', 'meas2_2_2_3_3_1', 'meas2_2_2_3_3_2', 'meas2_2_2_3_3_3', 'meas2_2_3_1_1_1', 'meas2_2_3_1_1_2', 'meas2_2_3_1_1_3', 'meas2_2_3_1_2_1', 'meas2_2_3_1_2_2', 'meas2_2_3_1_2_3', 'meas2_2_3_1_3_1', 'meas2_2_3_1_3_2', 'meas2_2_3_1_3_3', 'meas2_2_3_2_1_1', 'meas2_2_3_2_1_2', 'meas2_2_3_2_1_3', 'meas2_2_3_2_2_1', 'meas2_2_3_2_2_2', 'meas2_2_3_2_2_3', 'meas2_2_3_2_3_1', 'meas2_2_3_2_3_2', 'meas2_2_3_2_3_3', 'meas2_2_3_3_1_1', 'meas2_2_3_3_1_2', 'meas2_2_3_3_1_3', 'meas2_2_3_3_2_1', 'meas2_2_3_3_2_2', 'meas2_2_3_3_2_3', 'meas2_2_3_3_3_1', 'meas2_2_3_3_3_2', 'meas2_2_3_3_3_3', 'meas2_3_1_1_1_1', 'meas2_3_1_1_1_2', 'meas2_3_1_1_1_3', 'meas2_3_1_1_2_1', 'meas2_3_1_1_2_2', 'meas2_3_1_1_2_3', 'meas2_3_1_1_3_1', 'meas2_3_1_1_3_2', 'meas2_3_1_1_3_3', 'meas2_3_1_2_1_1', 'meas2_3_1_2_1_2', 'meas2_3_1_2_1_3', 'meas2_3_1_2_2_1', 'meas2_3_1_2_2_2', 'meas2_3_1_2_2_3', 'meas2_3_1_2_3_1', 'meas2_3_1_2_3_2', 'meas2_3_1_2_3_3', 'meas2_3_1_3_1_1', 'meas2_3_1_3_1_2', 'meas2_3_1_3_1_3', 'meas2_3_1_3_2_1', 'meas2_3_1_3_2_2', 'meas2_3_1_3_2_3', 'meas2_3_1_3_3_1', 'meas2_3_1_3_3_2', 'meas2_3_1_3_3_3', 'meas2_3_2_1_1_1', 'meas2_3_2_1_1_2', 'meas2_3_2_1_1_3', 'meas2_3_2_1_2_1', 'meas2_3_2_1_2_2', 'meas2_3_2_1_2_3', 'meas2_3_2_1_3_1', 'meas2_3_2_1_3_2', 'meas2_3_2_1_3_3', 'meas2_3_2_2_1_1', 'meas2_3_2_2_1_2', 'meas2_3_2_2_1_3', 'meas2_3_2_2_2_1', 'meas2_3_2_2_2_2', 'meas2_3_2_2_2_3', 'meas2_3_2_2_3_1', 'meas2_3_2_2_3_2', 'meas2_3_2_2_3_3', 'meas2_3_2_3_1_1', 'meas2_3_2_3_1_2', 'meas2_3_2_3_1_3', 'meas2_3_2_3_2_1', 'meas2_3_2_3_2_2', 'meas2_3_2_3_2_3', 'meas2_3_2_3_3_1', 'meas2_3_2_3_3_2', 'meas2_3_2_3_3_3', 'meas2_3_3_1_1_1', 'meas2_3_3_1_1_2', 'meas2_3_3_1_1_3', 'meas2_3_3_1_2_1', 'meas2_3_3_1_2_2', 'meas2_3_3_1_2_3', 'meas2_3_3_1_3_1', 'meas2_3_3_1_3_2', 'meas2_3_3_1_3_3', 'meas2_3_3_2_1_1', 'meas2_3_3_2_1_2', 'meas2_3_3_2_1_3', 'meas2_3_3_2_2_1', 'meas2_3_3_2_2_2', 'meas2_3_3_2_2_3', 'meas2_3_3_2_3_1', 'meas2_3_3_2_3_2', 'meas2_3_3_2_3_3', 'meas2_3_3_3_1_1', 'meas2_3_3_3_1_2', 'meas2_3_3_3_1_3', 'meas2_3_3_3_2_1', 'meas2_3_3_3_2_2', 'meas2_3_3_3_2_3', 'meas2_3_3_3_3_1', 'meas2_3_3_3_3_2', 'meas2_3_3_3_3_3' ) redis.call('SADD', 'measurement_tag_keys', 'meas3_1_1_1_1_1', 'meas3_1_1_1_1_2', 'meas3_1_1_1_1_3', 'meas3_1_1_1_2_1', 'meas3_1_1_1_2_2', 'meas3_1_1_1_2_3', 'meas3_1_1_1_3_1', 'meas3_1_1_1_3_2', 'meas3_1_1_1_3_3', 'meas3_1_1_2_1_1', 'meas3_1_1_2_1_2', 'meas3_1_1_2_1_3', 'meas3_1_1_2_2_1', 'meas3_1_1_2_2_2', 'meas3_1_1_2_2_3', 'meas3_1_1_2_3_1', 'meas3_1_1_2_3_2', 'meas3_1_1_2_3_3', 'meas3_1_1_3_1_1', 'meas3_1_1_3_1_2', 'meas3_1_1_3_1_3', 'meas3_1_1_3_2_1', 'meas3_1_1_3_2_2', 'meas3_1_1_3_2_3', 'meas3_1_1_3_3_1', 'meas3_1_1_3_3_2', 'meas3_1_1_3_3_3', 'meas3_1_2_1_1_1', 'meas3_1_2_1_1_2', 'meas3_1_2_1_1_3', 'meas3_1_2_1_2_1', 'meas3_1_2_1_2_2', 'meas3_1_2_1_2_3', 'meas3_1_2_1_3_1', 'meas3_1_2_1_3_2', 'meas3_1_2_1_3_3', 'meas3_1_2_2_1_1', 'meas3_1_2_2_1_2', 'meas3_1_2_2_1_3', 'meas3_1_2_2_2_1', 'meas3_1_2_2_2_2', 'meas3_1_2_2_2_3', 'meas3_1_2_2_3_1', 'meas3_1_2_2_3_2', 'meas3_1_2_2_3_3', 'meas3_1_2_3_1_1', 'meas3_1_2_3_1_2', 'meas3_1_2_3_1_3', 'meas3_1_2_3_2_1', 'meas3_1_2_3_2_2', 'meas3_1_2_3_2_3', 'meas3_1_2_3_3_1', 'meas3_1_2_3_3_2', 'meas3_1_2_3_3_3', 'meas3_1_3_1_1_1', 'meas3_1_3_1_1_2', 'meas3_1_3_1_1_3', 'meas3_1_3_1_2_1', 'meas3_1_3_1_2_2', 'meas3_1_3_1_2_3', 'meas3_1_3_1_3_1', 'meas3_1_3_1_3_2', 'meas3_1_3_1_3_3', 'meas3_1_3_2_1_1', 'meas3_1_3_2_1_2', 'meas3_1_3_2_1_3', 'meas3_1_3_2_2_1', 'meas3_1_3_2_2_2', 'meas3_1_3_2_2_3', 'meas3_1_3_2_3_1', 'meas3_1_3_2_3_2', 'meas3_1_3_2_3_3', 'meas3_1_3_3_1_1', 'meas3_1_3_3_1_2', 'meas3_1_3_3_1_3', 'meas3_1_3_3_2_1', 'meas3_1_3_3_2_2', 'meas3_1_3_3_2_3', 'meas3_1_3_3_3_1', 'meas3_1_3_3_3_2', 'meas3_1_3_3_3_3', 'meas3_2_1_1_1_1', 'meas3_2_1_1_1_2', 'meas3_2_1_1_1_3', 'meas3_2_1_1_2_1', 'meas3_2_1_1_2_2', 'meas3_2_1_1_2_3', 'meas3_2_1_1_3_1', 'meas3_2_1_1_3_2', 'meas3_2_1_1_3_3', 'meas3_2_1_2_1_1', 'meas3_2_1_2_1_2', 'meas3_2_1_2_1_3', 'meas3_2_1_2_2_1', 'meas3_2_1_2_2_2', 'meas3_2_1_2_2_3', 'meas3_2_1_2_3_1', 'meas3_2_1_2_3_2', 'meas3_2_1_2_3_3', 'meas3_2_1_3_1_1', 'meas3_2_1_3_1_2', 'meas3_2_1_3_1_3', 'meas3_2_1_3_2_1', 'meas3_2_1_3_2_2', 'meas3_2_1_3_2_3', 'meas3_2_1_3_3_1', 'meas3_2_1_3_3_2', 'meas3_2_1_3_3_3', 'meas3_2_2_1_1_1', 'meas3_2_2_1_1_2', 'meas3_2_2_1_1_3', 'meas3_2_2_1_2_1', 'meas3_2_2_1_2_2', 'meas3_2_2_1_2_3', 'meas3_2_2_1_3_1', 'meas3_2_2_1_3_2', 'meas3_2_2_1_3_3', 'meas3_2_2_2_1_1', 'meas3_2_2_2_1_2', 'meas3_2_2_2_1_3', 'meas3_2_2_2_2_1', 'meas3_2_2_2_2_2', 'meas3_2_2_2_2_3', 'meas3_2_2_2_3_1', 'meas3_2_2_2_3_2', 'meas3_2_2_2_3_3', 'meas3_2_2_3_1_1', 'meas3_2_2_3_1_2', 'meas3_2_2_3_1_3', 'meas3_2_2_3_2_1', 'meas3_2_2_3_2_2', 'meas3_2_2_3_2_3', 'meas3_2_2_3_3_1', 'meas3_2_2_3_3_2', 'meas3_2_2_3_3_3', 'meas3_2_3_1_1_1', 'meas3_2_3_1_1_2', 'meas3_2_3_1_1_3', 'meas3_2_3_1_2_1', 'meas3_2_3_1_2_2', 'meas3_2_3_1_2_3', 'meas3_2_3_1_3_1', 'meas3_2_3_1_3_2', 'meas3_2_3_1_3_3', 'meas3_2_3_2_1_1', 'meas3_2_3_2_1_2', 'meas3_2_3_2_1_3', 'meas3_2_3_2_2_1', 'meas3_2_3_2_2_2', 'meas3_2_3_2_2_3', 'meas3_2_3_2_3_1', 'meas3_2_3_2_3_2', 'meas3_2_3_2_3_3', 'meas3_2_3_3_1_1', 'meas3_2_3_3_1_2', 'meas3_2_3_3_1_3', 'meas3_2_3_3_2_1', 'meas3_2_3_3_2_2', 'meas3_2_3_3_2_3', 'meas3_2_3_3_3_1', 'meas3_2_3_3_3_2', 'meas3_2_3_3_3_3', 'meas3_3_1_1_1_1', 'meas3_3_1_1_1_2', 'meas3_3_1_1_1_3', 'meas3_3_1_1_2_1', 'meas3_3_1_1_2_2', 'meas3_3_1_1_2_3', 'meas3_3_1_1_3_1', 'meas3_3_1_1_3_2', 'meas3_3_1_1_3_3', 'meas3_3_1_2_1_1', 'meas3_3_1_2_1_2', 'meas3_3_1_2_1_3', 'meas3_3_1_2_2_1', 'meas3_3_1_2_2_2', 'meas3_3_1_2_2_3', 'meas3_3_1_2_3_1', 'meas3_3_1_2_3_2', 'meas3_3_1_2_3_3', 'meas3_3_1_3_1_1', 'meas3_3_1_3_1_2', 'meas3_3_1_3_1_3', 'meas3_3_1_3_2_1', 'meas3_3_1_3_2_2', 'meas3_3_1_3_2_3', 'meas3_3_1_3_3_1', 'meas3_3_1_3_3_2', 'meas3_3_1_3_3_3', 'meas3_3_2_1_1_1', 'meas3_3_2_1_1_2', 'meas3_3_2_1_1_3', 'meas3_3_2_1_2_1', 'meas3_3_2_1_2_2', 'meas3_3_2_1_2_3', 'meas3_3_2_1_3_1', 'meas3_3_2_1_3_2', 'meas3_3_2_1_3_3', 'meas3_3_2_2_1_1', 'meas3_3_2_2_1_2', 'meas3_3_2_2_1_3', 'meas3_3_2_2_2_1', 'meas3_3_2_2_2_2', 'meas3_3_2_2_2_3', 'meas3_3_2_2_3_1', 'meas3_3_2_2_3_2', 'meas3_3_2_2_3_3', 'meas3_3_2_3_1_1', 'meas3_3_2_3_1_2', 'meas3_3_2_3_1_3', 'meas3_3_2_3_2_1', 'meas3_3_2_3_2_2', 'meas3_3_2_3_2_3', 'meas3_3_2_3_3_1', 'meas3_3_2_3_3_2', 'meas3_3_2_3_3_3', 'meas3_3_3_1_1_1', 'meas3_3_3_1_1_2', 'meas3_3_3_1_1_3', 'meas3_3_3_1_2_1', 'meas3_3_3_1_2_2', 'meas3_3_3_1_2_3', 'meas3_3_3_1_3_1', 'meas3_3_3_1_3_2', 'meas3_3_3_1_3_3', 'meas3_3_3_2_1_1', 'meas3_3_3_2_1_2', 'meas3_3_3_2_1_3', 'meas3_3_3_2_2_1', 'meas3_3_3_2_2_2', 'meas3_3_3_2_2_3', 'meas3_3_3_2_3_1', 'meas3_3_3_2_3_2', 'meas3_3_3_2_3_3', 'meas3_3_3_3_1_1', 'meas3_3_3_3_1_2', 'meas3_3_3_3_1_3', 'meas3_3_3_3_2_1', 'meas3_3_3_3_2_2', 'meas3_3_3_3_2_3', 'meas3_3_3_3_3_1', 'meas3_3_3_3_3_2', 'meas3_3_3_3_3_3' ) redis.call('SADD', 'grid1_zones_keys', 'zone1_1', 'zone1_2', 'zone1_3') redis.call('SADD', 'grid2_zones_keys', 'zone2_1', 'zone2_2', 'zone2_3') redis.call('SADD', 'grid3_zones_keys', 'zone3_1', 'zone3_2', 'zone3_3') redis.call('SADD', 'zone1_1_stations_keys', 'station1_1_1', 'station1_1_2', 'station1_1_3') redis.call('SADD', 'zone1_2_stations_keys', 'station1_2_1', 'station1_2_2', 'station1_2_3') redis.call('SADD', 'zone1_3_stations_keys', 'station1_3_1', 'station1_3_2', 'station1_3_3') redis.call('SADD', 'zone2_1_stations_keys', 'station2_1_1', 'station2_1_2', 'station2_1_3') redis.call('SADD', 'zone2_2_stations_keys', 'station2_2_1', 'station2_2_2', 'station2_2_3') redis.call('SADD', 'zone2_3_stations_keys', 'station2_3_1', 'station2_3_2', 'station2_3_3') redis.call('SADD', 'zone3_1_stations_keys', 'station3_1_1', 'station3_1_2', 'station3_1_3') redis.call('SADD', 'zone3_2_stations_keys', 'station3_2_1', 'station3_2_2', 'station3_2_3') redis.call('SADD', 'zone3_3_stations_keys', 'station3_3_1', 'station3_3_2', 'station3_3_3') redis.call('SADD', 'station1_1_1_components_nspath_keys', 'ns1_1_1_1', 'ns1_1_1_2', 'ns1_1_1_3') redis.call('SADD', 'station1_1_2_components_nspath_keys', 'ns1_1_2_1', 'ns1_1_2_2', 'ns1_1_2_3') redis.call('SADD', 'station1_1_3_components_nspath_keys', 'ns1_1_3_1', 'ns1_1_3_2', 'ns1_1_3_3') redis.call('SADD', 'station1_2_1_components_nspath_keys', 'ns1_2_1_1', 'ns1_2_1_2', 'ns1_2_1_3') redis.call('SADD', 'station1_2_2_components_nspath_keys', 'ns1_2_2_1', 'ns1_2_2_2', 'ns1_2_2_3') redis.call('SADD', 'station1_2_3_components_nspath_keys', 'ns1_2_3_1', 'ns1_2_3_2', 'ns1_2_3_3') redis.call('SADD', 'station1_3_1_components_nspath_keys', 'ns1_3_1_1', 'ns1_3_1_2', 'ns1_3_1_3') redis.call('SADD', 'station1_3_2_components_nspath_keys', 'ns1_3_2_1', 'ns1_3_2_2', 'ns1_3_2_3') redis.call('SADD', 'station1_3_3_components_nspath_keys', 'ns1_3_3_1', 'ns1_3_3_2', 'ns1_3_3_3') redis.call('SADD', 'station2_1_1_components_nspath_keys', 'ns2_1_1_1', 'ns2_1_1_2', 'ns2_1_1_3') redis.call('SADD', 'station2_1_2_components_nspath_keys', 'ns2_1_2_1', 'ns2_1_2_2', 'ns2_1_2_3') redis.call('SADD', 'station2_1_3_components_nspath_keys', 'ns2_1_3_1', 'ns2_1_3_2', 'ns2_1_3_3') redis.call('SADD', 'station2_2_1_components_nspath_keys', 'ns2_2_1_1', 'ns2_2_1_2', 'ns2_2_1_3') redis.call('SADD', 'station2_2_2_components_nspath_keys', 'ns2_2_2_1', 'ns2_2_2_2', 'ns2_2_2_3') redis.call('SADD', 'station2_2_3_components_nspath_keys', 'ns2_2_3_1', 'ns2_2_3_2', 'ns2_2_3_3') redis.call('SADD', 'station2_3_1_components_nspath_keys', 'ns2_3_1_1', 'ns2_3_1_2', 'ns2_3_1_3') redis.call('SADD', 'station2_3_2_components_nspath_keys', 'ns2_3_2_1', 'ns2_3_2_2', 'ns2_3_2_3') redis.call('SADD', 'station2_3_3_components_nspath_keys', 'ns2_3_3_1', 'ns2_3_3_2', 'ns2_3_3_3') redis.call('SADD', 'station3_1_1_components_nspath_keys', 'ns3_1_1_1', 'ns3_1_1_2', 'ns3_1_1_3') redis.call('SADD', 'station3_1_2_components_nspath_keys', 'ns3_1_2_1', 'ns3_1_2_2', 'ns3_1_2_3') redis.call('SADD', 'station3_1_3_components_nspath_keys', 'ns3_1_3_1', 'ns3_1_3_2', 'ns3_1_3_3') redis.call('SADD', 'station3_2_1_components_nspath_keys', 'ns3_2_1_1', 'ns3_2_1_2', 'ns3_2_1_3') redis.call('SADD', 'station3_2_2_components_nspath_keys', 'ns3_2_2_1', 'ns3_2_2_2', 'ns3_2_2_3') redis.call('SADD', 'station3_2_3_components_nspath_keys', 'ns3_2_3_1', 'ns3_2_3_2', 'ns3_2_3_3') redis.call('SADD', 'station3_3_1_components_nspath_keys', 'ns3_3_1_1', 'ns3_3_1_2', 'ns3_3_1_3') redis.call('SADD', 'station3_3_2_components_nspath_keys', 'ns3_3_2_1', 'ns3_3_2_2', 'ns3_3_2_3') redis.call('SADD', 'station3_3_3_components_nspath_keys', 'ns3_3_3_1', 'ns3_3_3_2', 'ns3_3_3_3') redis.call('SADD', 'station1_1_1_components_nspath_keys', 'ns1_1_1_1', 'ns1_1_1_2', 'ns1_1_1_3') redis.call('SADD', 'station1_1_2_components_nspath_keys', 'ns1_1_2_1', 'ns1_1_2_2', 'ns1_1_2_3') redis.call('SADD', 'station1_1_3_components_nspath_keys', 'ns1_1_3_1', 'ns1_1_3_2', 'ns1_1_3_3') redis.call('SADD', 'station1_2_1_components_nspath_keys', 'ns1_2_1_1', 'ns1_2_1_2', 'ns1_2_1_3') redis.call('SADD', 'station1_2_2_components_nspath_keys', 'ns1_2_2_1', 'ns1_2_2_2', 'ns1_2_2_3') redis.call('SADD', 'station1_2_3_components_nspath_keys', 'ns1_2_3_1', 'ns1_2_3_2', 'ns1_2_3_3') redis.call('SADD', 'station1_3_1_components_nspath_keys', 'ns1_3_1_1', 'ns1_3_1_2', 'ns1_3_1_3') redis.call('SADD', 'station1_3_2_components_nspath_keys', 'ns1_3_2_1', 'ns1_3_2_2', 'ns1_3_2_3') redis.call('SADD', 'station1_3_3_components_nspath_keys', 'ns1_3_3_1', 'ns1_3_3_2', 'ns1_3_3_3') redis.call('SADD', 'station2_1_1_components_nspath_keys', 'ns2_1_1_1', 'ns2_1_1_2', 'ns2_1_1_3') redis.call('SADD', 'station2_1_2_components_nspath_keys', 'ns2_1_2_1', 'ns2_1_2_2', 'ns2_1_2_3') redis.call('SADD', 'station2_1_3_components_nspath_keys', 'ns2_1_3_1', 'ns2_1_3_2', 'ns2_1_3_3') redis.call('SADD', 'station2_2_1_components_nspath_keys', 'ns2_2_1_1', 'ns2_2_1_2', 'ns2_2_1_3') redis.call('SADD', 'station2_2_2_components_nspath_keys', 'ns2_2_2_1', 'ns2_2_2_2', 'ns2_2_2_3') redis.call('SADD', 'station2_2_3_components_nspath_keys', 'ns2_2_3_1', 'ns2_2_3_2', 'ns2_2_3_3') redis.call('SADD', 'station2_3_1_components_nspath_keys', 'ns2_3_1_1', 'ns2_3_1_2', 'ns2_3_1_3') redis.call('SADD', 'station2_3_2_components_nspath_keys', 'ns2_3_2_1', 'ns2_3_2_2', 'ns2_3_2_3') redis.call('SADD', 'station2_3_3_components_nspath_keys', 'ns2_3_3_1', 'ns2_3_3_2', 'ns2_3_3_3') redis.call('SADD', 'station3_1_1_components_nspath_keys', 'ns3_1_1_1', 'ns3_1_1_2', 'ns3_1_1_3') redis.call('SADD', 'station3_1_2_components_nspath_keys', 'ns3_1_2_1', 'ns3_1_2_2', 'ns3_1_2_3') redis.call('SADD', 'station3_1_3_components_nspath_keys', 'ns3_1_3_1', 'ns3_1_3_2', 'ns3_1_3_3') redis.call('SADD', 'station3_2_1_components_nspath_keys', 'ns3_2_1_1', 'ns3_2_1_2', 'ns3_2_1_3') redis.call('SADD', 'station3_2_2_components_nspath_keys', 'ns3_2_2_1', 'ns3_2_2_2', 'ns3_2_2_3') redis.call('SADD', 'station3_2_3_components_nspath_keys', 'ns3_2_3_1', 'ns3_2_3_2', 'ns3_2_3_3') redis.call('SADD', 'station3_3_1_components_nspath_keys', 'ns3_3_1_1', 'ns3_3_1_2', 'ns3_3_1_3') redis.call('SADD', 'station3_3_2_components_nspath_keys', 'ns3_3_2_1', 'ns3_3_2_2', 'ns3_3_2_3') redis.call('SADD', 'station3_3_3_components_nspath_keys', 'ns3_3_3_1', 'ns3_3_3_2', 'ns3_3_3_3') redis.call('SADD', 'ns1_1_1_1_components_tag_keys', 'comptag1_1_1_1_1', 'comptag1_1_1_1_2', 'comptag1_1_1_1_3') redis.call('SADD', 'ns1_1_1_2_components_tag_keys', 'comptag1_1_1_2_1', 'comptag1_1_1_2_2', 'comptag1_1_1_2_3') redis.call('SADD', 'ns1_1_1_3_components_tag_keys', 'comptag1_1_1_3_1', 'comptag1_1_1_3_2', 'comptag1_1_1_3_3') redis.call('SADD', 'ns1_1_2_1_components_tag_keys', 'comptag1_1_2_1_1', 'comptag1_1_2_1_2', 'comptag1_1_2_1_3') redis.call('SADD', 'ns1_1_2_2_components_tag_keys', 'comptag1_1_2_2_1', 'comptag1_1_2_2_2', 'comptag1_1_2_2_3') redis.call('SADD', 'ns1_1_2_3_components_tag_keys', 'comptag1_1_2_3_1', 'comptag1_1_2_3_2', 'comptag1_1_2_3_3') redis.call('SADD', 'ns1_1_3_1_components_tag_keys', 'comptag1_1_3_1_1', 'comptag1_1_3_1_2', 'comptag1_1_3_1_3') redis.call('SADD', 'ns1_1_3_2_components_tag_keys', 'comptag1_1_3_2_1', 'comptag1_1_3_2_2', 'comptag1_1_3_2_3') redis.call('SADD', 'ns1_1_3_3_components_tag_keys', 'comptag1_1_3_3_1', 'comptag1_1_3_3_2', 'comptag1_1_3_3_3') redis.call('SADD', 'ns1_2_1_1_components_tag_keys', 'comptag1_2_1_1_1', 'comptag1_2_1_1_2', 'comptag1_2_1_1_3') redis.call('SADD', 'ns1_2_1_2_components_tag_keys', 'comptag1_2_1_2_1', 'comptag1_2_1_2_2', 'comptag1_2_1_2_3') redis.call('SADD', 'ns1_2_1_3_components_tag_keys', 'comptag1_2_1_3_1', 'comptag1_2_1_3_2', 'comptag1_2_1_3_3') redis.call('SADD', 'ns1_2_2_1_components_tag_keys', 'comptag1_2_2_1_1', 'comptag1_2_2_1_2', 'comptag1_2_2_1_3') redis.call('SADD', 'ns1_2_2_2_components_tag_keys', 'comptag1_2_2_2_1', 'comptag1_2_2_2_2', 'comptag1_2_2_2_3') redis.call('SADD', 'ns1_2_2_3_components_tag_keys', 'comptag1_2_2_3_1', 'comptag1_2_2_3_2', 'comptag1_2_2_3_3') redis.call('SADD', 'ns1_2_3_1_components_tag_keys', 'comptag1_2_3_1_1', 'comptag1_2_3_1_2', 'comptag1_2_3_1_3') redis.call('SADD', 'ns1_2_3_2_components_tag_keys', 'comptag1_2_3_2_1', 'comptag1_2_3_2_2', 'comptag1_2_3_2_3') redis.call('SADD', 'ns1_2_3_3_components_tag_keys', 'comptag1_2_3_3_1', 'comptag1_2_3_3_2', 'comptag1_2_3_3_3') redis.call('SADD', 'ns1_3_1_1_components_tag_keys', 'comptag1_3_1_1_1', 'comptag1_3_1_1_2', 'comptag1_3_1_1_3') redis.call('SADD', 'ns1_3_1_2_components_tag_keys', 'comptag1_3_1_2_1', 'comptag1_3_1_2_2', 'comptag1_3_1_2_3') redis.call('SADD', 'ns1_3_1_3_components_tag_keys', 'comptag1_3_1_3_1', 'comptag1_3_1_3_2', 'comptag1_3_1_3_3') redis.call('SADD', 'ns1_3_2_1_components_tag_keys', 'comptag1_3_2_1_1', 'comptag1_3_2_1_2', 'comptag1_3_2_1_3') redis.call('SADD', 'ns1_3_2_2_components_tag_keys', 'comptag1_3_2_2_1', 'comptag1_3_2_2_2', 'comptag1_3_2_2_3') redis.call('SADD', 'ns1_3_2_3_components_tag_keys', 'comptag1_3_2_3_1', 'comptag1_3_2_3_2', 'comptag1_3_2_3_3') redis.call('SADD', 'ns1_3_2_1_components_tag_keys', 'comptag1_3_2_1_1', 'comptag1_3_2_1_2', 'comptag1_3_2_1_3') redis.call('SADD', 'ns1_3_2_2_components_tag_keys', 'comptag1_3_2_2_1', 'comptag1_3_2_2_2', 'comptag1_3_2_2_3') redis.call('SADD', 'ns1_3_2_3_components_tag_keys', 'comptag1_3_2_3_1', 'comptag1_3_2_3_2', 'comptag1_3_2_3_3') redis.call('SADD', 'ns2_1_1_1_components_tag_keys', 'comptag2_1_1_1_1', 'comptag2_1_1_1_2', 'comptag2_1_1_1_3') redis.call('SADD', 'ns2_1_1_2_components_tag_keys', 'comptag2_1_1_2_1', 'comptag2_1_1_2_2', 'comptag2_1_1_2_3') redis.call('SADD', 'ns2_1_1_3_components_tag_keys', 'comptag2_1_1_3_1', 'comptag2_1_1_3_2', 'comptag2_1_1_3_3') redis.call('SADD', 'ns2_1_2_1_components_tag_keys', 'comptag2_1_2_1_1', 'comptag2_1_2_1_2', 'comptag2_1_2_1_3') redis.call('SADD', 'ns2_1_2_2_components_tag_keys', 'comptag2_1_2_2_1', 'comptag2_1_2_2_2', 'comptag2_1_2_2_3') redis.call('SADD', 'ns2_1_2_3_components_tag_keys', 'comptag2_1_2_3_1', 'comptag2_1_2_3_2', 'comptag2_1_2_3_3') redis.call('SADD', 'ns2_1_3_1_components_tag_keys', 'comptag2_1_3_1_1', 'comptag2_1_3_1_2', 'comptag2_1_3_1_3') redis.call('SADD', 'ns2_1_3_2_components_tag_keys', 'comptag2_1_3_2_1', 'comptag2_1_3_2_2', 'comptag2_1_3_2_3') redis.call('SADD', 'ns2_1_3_3_components_tag_keys', 'comptag2_1_3_3_1', 'comptag2_1_3_3_2', 'comptag2_1_3_3_3') redis.call('SADD', 'ns2_2_1_1_components_tag_keys', 'comptag2_2_1_1_1', 'comptag2_2_1_1_2', 'comptag2_2_1_1_3') redis.call('SADD', 'ns2_2_1_2_components_tag_keys', 'comptag2_2_1_2_1', 'comptag2_2_1_2_2', 'comptag2_2_1_2_3') redis.call('SADD', 'ns2_2_1_3_components_tag_keys', 'comptag2_2_1_3_1', 'comptag2_2_1_3_2', 'comptag2_2_1_3_3') redis.call('SADD', 'ns2_2_2_1_components_tag_keys', 'comptag2_2_2_1_1', 'comptag2_2_2_1_2', 'comptag2_2_2_1_3') redis.call('SADD', 'ns2_2_2_2_components_tag_keys', 'comptag2_2_2_2_1', 'comptag2_2_2_2_2', 'comptag2_2_2_2_3') redis.call('SADD', 'ns2_2_2_3_components_tag_keys', 'comptag2_2_2_3_1', 'comptag2_2_2_3_2', 'comptag2_2_2_3_3') redis.call('SADD', 'ns2_2_3_1_components_tag_keys', 'comptag2_2_3_1_1', 'comptag2_2_3_1_2', 'comptag2_2_3_1_3') redis.call('SADD', 'ns2_2_3_2_components_tag_keys', 'comptag2_2_3_2_1', 'comptag2_2_3_2_2', 'comptag2_2_3_2_3') redis.call('SADD', 'ns2_2_3_3_components_tag_keys', 'comptag2_2_3_3_1', 'comptag2_2_3_3_2', 'comptag2_2_3_3_3') redis.call('SADD', 'ns2_3_1_1_components_tag_keys', 'comptag2_3_1_1_1', 'comptag2_3_1_1_2', 'comptag2_3_1_1_3') redis.call('SADD', 'ns2_3_1_2_components_tag_keys', 'comptag2_3_1_2_1', 'comptag2_3_1_2_2', 'comptag2_3_1_2_3') redis.call('SADD', 'ns2_3_1_3_components_tag_keys', 'comptag2_3_1_3_1', 'comptag2_3_1_3_2', 'comptag2_3_1_3_3') redis.call('SADD', 'ns2_3_2_1_components_tag_keys', 'comptag2_3_2_1_1', 'comptag2_3_2_1_2', 'comptag2_3_2_1_3') redis.call('SADD', 'ns2_3_2_2_components_tag_keys', 'comptag2_3_2_2_1', 'comptag2_3_2_2_2', 'comptag2_3_2_2_3') redis.call('SADD', 'ns2_3_2_3_components_tag_keys', 'comptag2_3_2_3_1', 'comptag2_3_2_3_2', 'comptag2_3_2_3_3') redis.call('SADD', 'ns2_3_2_1_components_tag_keys', 'comptag2_3_2_1_1', 'comptag2_3_2_1_2', 'comptag2_3_2_1_3') redis.call('SADD', 'ns2_3_2_2_components_tag_keys', 'comptag2_3_2_2_1', 'comptag2_3_2_2_2', 'comptag2_3_2_2_3') redis.call('SADD', 'ns2_3_2_3_components_tag_keys', 'comptag2_3_2_3_1', 'comptag2_3_2_3_2', 'comptag2_3_2_3_3') redis.call('SADD', 'ns3_1_1_1_components_tag_keys', 'comptag3_1_1_1_1', 'comptag3_1_1_1_2', 'comptag3_1_1_1_3') redis.call('SADD', 'ns3_1_1_2_components_tag_keys', 'comptag3_1_1_2_1', 'comptag3_1_1_2_2', 'comptag3_1_1_2_3') redis.call('SADD', 'ns3_1_1_3_components_tag_keys', 'comptag3_1_1_3_1', 'comptag3_1_1_3_2', 'comptag3_1_1_3_3') redis.call('SADD', 'ns3_1_2_1_components_tag_keys', 'comptag3_1_2_1_1', 'comptag3_1_2_1_2', 'comptag3_1_2_1_3') redis.call('SADD', 'ns3_1_2_2_components_tag_keys', 'comptag3_1_2_2_1', 'comptag3_1_2_2_2', 'comptag3_1_2_2_3') redis.call('SADD', 'ns3_1_2_3_components_tag_keys', 'comptag3_1_2_3_1', 'comptag3_1_2_3_2', 'comptag3_1_2_3_3') redis.call('SADD', 'ns3_1_3_1_components_tag_keys', 'comptag3_1_3_1_1', 'comptag3_1_3_1_2', 'comptag3_1_3_1_3') redis.call('SADD', 'ns3_1_3_2_components_tag_keys', 'comptag3_1_3_2_1', 'comptag3_1_3_2_2', 'comptag3_1_3_2_3') redis.call('SADD', 'ns3_1_3_3_components_tag_keys', 'comptag3_1_3_3_1', 'comptag3_1_3_3_2', 'comptag3_1_3_3_3') redis.call('SADD', 'ns3_2_1_1_components_tag_keys', 'comptag3_2_1_1_1', 'comptag3_2_1_1_2', 'comptag3_2_1_1_3') redis.call('SADD', 'ns3_2_1_2_components_tag_keys', 'comptag3_2_1_2_1', 'comptag3_2_1_2_2', 'comptag3_2_1_2_3') redis.call('SADD', 'ns3_2_1_3_components_tag_keys', 'comptag3_2_1_3_1', 'comptag3_2_1_3_2', 'comptag3_2_1_3_3') redis.call('SADD', 'ns3_2_2_1_components_tag_keys', 'comptag3_2_2_1_1', 'comptag3_2_2_1_2', 'comptag3_2_2_1_3') redis.call('SADD', 'ns3_2_2_2_components_tag_keys', 'comptag3_2_2_2_1', 'comptag3_2_2_2_2', 'comptag3_2_2_2_3') redis.call('SADD', 'ns3_2_2_3_components_tag_keys', 'comptag3_2_2_3_1', 'comptag3_2_2_3_2', 'comptag3_2_2_3_3') redis.call('SADD', 'ns3_2_3_1_components_tag_keys', 'comptag3_2_3_1_1', 'comptag3_2_3_1_2', 'comptag3_2_3_1_3') redis.call('SADD', 'ns3_2_3_2_components_tag_keys', 'comptag3_2_3_2_1', 'comptag3_2_3_2_2', 'comptag3_2_3_2_3') redis.call('SADD', 'ns3_2_3_3_components_tag_keys', 'comptag3_2_3_3_1', 'comptag3_2_3_3_2', 'comptag3_2_3_3_3') redis.call('SADD', 'ns3_3_1_1_components_tag_keys', 'comptag3_3_1_1_1', 'comptag3_3_1_1_2', 'comptag3_3_1_1_3') redis.call('SADD', 'ns3_3_1_2_components_tag_keys', 'comptag3_3_1_2_1', 'comptag3_3_1_2_2', 'comptag3_3_1_2_3') redis.call('SADD', 'ns3_3_1_3_components_tag_keys', 'comptag3_3_1_3_1', 'comptag3_3_1_3_2', 'comptag3_3_1_3_3') redis.call('SADD', 'ns3_3_2_1_components_tag_keys', 'comptag3_3_2_1_1', 'comptag3_3_2_1_2', 'comptag3_3_2_1_3') redis.call('SADD', 'ns3_3_2_2_components_tag_keys', 'comptag3_3_2_2_1', 'comptag3_3_2_2_2', 'comptag3_3_2_2_3') redis.call('SADD', 'ns3_3_2_3_components_tag_keys', 'comptag3_3_2_3_1', 'comptag3_3_2_3_2', 'comptag3_3_2_3_3') redis.call('SADD', 'ns3_3_3_1_components_tag_keys', 'comptag3_3_3_1_1', 'comptag3_3_3_1_2', 'comptag3_3_3_1_3') redis.call('SADD', 'ns3_3_3_2_components_tag_keys', 'comptag3_3_3_2_1', 'comptag3_3_3_2_2', 'comptag3_3_3_2_3') redis.call('SADD', 'ns3_3_3_3_components_tag_keys', 'comptag3_3_3_3_1', 'comptag3_3_3_3_2', 'comptag3_3_3_3_3') redis.call('SADD', 'comptag1_1_1_1_2_measurement_keys', 'meas1_1_1_1_2_1', 'meas1_1_1_1_2_2', 'meas1_1_1_1_2_3') redis.call('SADD', 'comptag1_1_1_1_3_measurement_keys', 'meas1_1_1_1_3_1', 'meas1_1_1_1_3_2', 'meas1_1_1_1_3_3') redis.call('SADD', 'comptag1_1_1_2_1_measurement_keys', 'meas1_1_1_2_1_1', 'meas1_1_1_2_1_2', 'meas1_1_1_2_1_3') redis.call('SADD', 'comptag1_1_1_2_2_measurement_keys', 'meas1_1_1_2_2_1', 'meas1_1_1_2_2_2', 'meas1_1_1_2_2_3') redis.call('SADD', 'comptag1_1_1_2_3_measurement_keys', 'meas1_1_1_2_3_1', 'meas1_1_1_2_3_2', 'meas1_1_1_2_3_3') redis.call('SADD', 'comptag1_1_1_3_1_measurement_keys', 'meas1_1_1_3_1_1', 'meas1_1_1_3_1_2', 'meas1_1_1_3_1_3') redis.call('SADD', 'comptag1_1_1_3_2_measurement_keys', 'meas1_1_1_3_2_1', 'meas1_1_1_3_2_2', 'meas1_1_1_3_2_3') redis.call('SADD', 'comptag1_1_1_3_3_measurement_keys', 'meas1_1_1_3_3_1', 'meas1_1_1_3_3_2', 'meas1_1_1_3_3_3') redis.call('SADD', 'comptag1_1_2_1_1_measurement_keys', 'meas1_1_2_1_1_1', 'meas1_1_2_1_1_2', 'meas1_1_2_1_1_3') redis.call('SADD', 'comptag1_1_2_1_2_measurement_keys', 'meas1_1_2_1_2_1', 'meas1_1_2_1_2_2', 'meas1_1_2_1_2_3') redis.call('SADD', 'comptag1_1_2_1_3_measurement_keys', 'meas1_1_2_1_3_1', 'meas1_1_2_1_3_2', 'meas1_1_2_1_3_3') redis.call('SADD', 'comptag1_1_2_2_1_measurement_keys', 'meas1_1_2_2_1_1', 'meas1_1_2_2_1_2', 'meas1_1_2_2_1_3') redis.call('SADD', 'comptag1_1_2_2_2_measurement_keys', 'meas1_1_2_2_2_1', 'meas1_1_2_2_2_2', 'meas1_1_2_2_2_3') redis.call('SADD', 'comptag1_1_2_2_3_measurement_keys', 'meas1_1_2_2_3_1', 'meas1_1_2_2_3_2', 'meas1_1_2_2_3_3') redis.call('SADD', 'comptag1_1_2_3_1_measurement_keys', 'meas1_1_2_3_1_1', 'meas1_1_2_3_1_2', 'meas1_1_2_3_1_3') redis.call('SADD', 'comptag1_1_2_3_2_measurement_keys', 'meas1_1_2_3_2_1', 'meas1_1_2_3_2_2', 'meas1_1_2_3_2_3') redis.call('SADD', 'comptag1_1_2_3_3_measurement_keys', 'meas1_1_2_3_3_1', 'meas1_1_2_3_3_2', 'meas1_1_2_3_3_3') redis.call('SADD', 'comptag1_1_3_1_1_measurement_keys', 'meas1_1_3_1_1_1', 'meas1_1_3_1_1_2', 'meas1_1_3_1_1_3') redis.call('SADD', 'comptag1_1_3_1_2_measurement_keys', 'meas1_1_3_1_2_1', 'meas1_1_3_1_2_2', 'meas1_1_3_1_2_3') redis.call('SADD', 'comptag1_1_3_1_3_measurement_keys', 'meas1_1_3_1_3_1', 'meas1_1_3_1_3_2', 'meas1_1_3_1_3_3') redis.call('SADD', 'comptag1_1_3_2_1_measurement_keys', 'meas1_1_3_2_1_1', 'meas1_1_3_2_1_2', 'meas1_1_3_2_1_3') redis.call('SADD', 'comptag1_1_3_2_2_measurement_keys', 'meas1_1_3_2_2_1', 'meas1_1_3_2_2_2', 'meas1_1_3_2_2_3') redis.call('SADD', 'comptag1_1_3_2_3_measurement_keys', 'meas1_1_3_2_3_1', 'meas1_1_3_2_3_2', 'meas1_1_3_2_3_3') redis.call('SADD', 'comptag1_1_3_3_1_measurement_keys', 'meas1_1_3_3_1_1', 'meas1_1_3_3_1_2', 'meas1_1_3_3_1_3') redis.call('SADD', 'comptag1_1_3_3_2_measurement_keys', 'meas1_1_3_3_2_1', 'meas1_1_3_3_2_2', 'meas1_1_3_3_2_3') redis.call('SADD', 'comptag1_1_3_3_3_measurement_keys', 'meas1_1_3_3_3_1', 'meas1_1_3_3_3_2', 'meas1_1_3_3_3_3') redis.call('SADD', 'comptag1_2_1_1_1_measurement_keys', 'meas1_2_1_1_1_1', 'meas1_2_1_1_1_2', 'meas1_2_1_1_1_3') redis.call('SADD', 'comptag1_2_1_1_2_measurement_keys', 'meas1_2_1_1_2_1', 'meas1_2_1_1_2_2', 'meas1_2_1_1_2_3') redis.call('SADD', 'comptag1_2_1_1_3_measurement_keys', 'meas1_2_1_1_3_1', 'meas1_2_1_1_3_2', 'meas1_2_1_1_3_3') redis.call('SADD', 'comptag1_2_1_2_1_measurement_keys', 'meas1_2_1_2_1_1', 'meas1_2_1_2_1_2', 'meas1_2_1_2_1_3') redis.call('SADD', 'comptag1_2_1_2_2_measurement_keys', 'meas1_2_1_2_2_1', 'meas1_2_1_2_2_2', 'meas1_2_1_2_2_3') redis.call('SADD', 'comptag1_2_1_2_3_measurement_keys', 'meas1_2_1_2_3_1', 'meas1_2_1_2_3_2', 'meas1_2_1_2_3_3') redis.call('SADD', 'comptag1_2_1_3_1_measurement_keys', 'meas1_2_1_3_1_1', 'meas1_2_1_3_1_2', 'meas1_2_1_3_1_3') redis.call('SADD', 'comptag1_2_1_3_2_measurement_keys', 'meas1_2_1_3_2_1', 'meas1_2_1_3_2_2', 'meas1_2_1_3_2_3') redis.call('SADD', 'comptag1_2_1_3_3_measurement_keys', 'meas1_2_1_3_3_1', 'meas1_2_1_3_3_2', 'meas1_2_1_3_3_3') redis.call('SADD', 'comptag1_2_2_1_1_measurement_keys', 'meas1_2_2_1_1_1', 'meas1_2_2_1_1_2', 'meas1_2_2_1_1_3') redis.call('SADD', 'comptag1_2_2_1_2_measurement_keys', 'meas1_2_2_1_2_1', 'meas1_2_2_1_2_2', 'meas1_2_2_1_2_3') redis.call('SADD', 'comptag1_2_2_1_3_measurement_keys', 'meas1_2_2_1_3_1', 'meas1_2_2_1_3_2', 'meas1_2_2_1_3_3') redis.call('SADD', 'comptag1_2_2_2_1_measurement_keys', 'meas1_2_2_2_1_1', 'meas1_2_2_2_1_2', 'meas1_2_2_2_1_3') redis.call('SADD', 'comptag1_2_2_2_2_measurement_keys', 'meas1_2_2_2_2_1', 'meas1_2_2_2_2_2', 'meas1_2_2_2_2_3') redis.call('SADD', 'comptag1_2_2_2_3_measurement_keys', 'meas1_2_2_2_3_1', 'meas1_2_2_2_3_2', 'meas1_2_2_2_3_3') redis.call('SADD', 'comptag1_2_2_3_1_measurement_keys', 'meas1_2_2_3_1_1', 'meas1_2_2_3_1_2', 'meas1_2_2_3_1_3') redis.call('SADD', 'comptag1_2_2_3_2_measurement_keys', 'meas1_2_2_3_2_1', 'meas1_2_2_3_2_2', 'meas1_2_2_3_2_3') redis.call('SADD', 'comptag1_2_2_3_3_measurement_keys', 'meas1_2_2_3_3_1', 'meas1_2_2_3_3_2', 'meas1_2_2_3_3_3') redis.call('SADD', 'comptag1_2_3_1_1_measurement_keys', 'meas1_2_3_1_1_1', 'meas1_2_3_1_1_2', 'meas1_2_3_1_1_3') redis.call('SADD', 'comptag1_2_3_1_2_measurement_keys', 'meas1_2_3_1_2_1', 'meas1_2_3_1_2_2', 'meas1_2_3_1_2_3') redis.call('SADD', 'comptag1_2_3_1_3_measurement_keys', 'meas1_2_3_1_3_1', 'meas1_2_3_1_3_2', 'meas1_2_3_1_3_3') redis.call('SADD', 'comptag1_2_3_2_1_measurement_keys', 'meas1_2_3_2_1_1', 'meas1_2_3_2_1_2', 'meas1_2_3_2_1_3') redis.call('SADD', 'comptag1_2_3_2_2_measurement_keys', 'meas1_2_3_2_2_1', 'meas1_2_3_2_2_2', 'meas1_2_3_2_2_3') redis.call('SADD', 'comptag1_2_3_2_3_measurement_keys', 'meas1_2_3_2_3_1', 'meas1_2_3_2_3_2', 'meas1_2_3_2_3_3') redis.call('SADD', 'comptag1_2_3_3_1_measurement_keys', 'meas1_2_3_3_1_1', 'meas1_2_3_3_1_2', 'meas1_2_3_3_1_3') redis.call('SADD', 'comptag1_2_3_3_2_measurement_keys', 'meas1_2_3_3_2_1', 'meas1_2_3_3_2_2', 'meas1_2_3_3_2_3') redis.call('SADD', 'comptag1_2_3_3_3_measurement_keys', 'meas1_2_3_3_3_1', 'meas1_2_3_3_3_2', 'meas1_2_3_3_3_3') redis.call('SADD', 'comptag1_3_1_1_1_measurement_keys', 'meas1_3_1_1_1_1', 'meas1_3_1_1_1_2', 'meas1_3_1_1_1_3') redis.call('SADD', 'comptag1_3_1_1_2_measurement_keys', 'meas1_3_1_1_2_1', 'meas1_3_1_1_2_2', 'meas1_3_1_1_2_3') redis.call('SADD', 'comptag1_3_1_1_3_measurement_keys', 'meas1_3_1_1_3_1', 'meas1_3_1_1_3_2', 'meas1_3_1_1_3_3') redis.call('SADD', 'comptag1_3_1_2_1_measurement_keys', 'meas1_3_1_2_1_1', 'meas1_3_1_2_1_2', 'meas1_3_1_2_1_3') redis.call('SADD', 'comptag1_3_1_2_2_measurement_keys', 'meas1_3_1_2_2_1', 'meas1_3_1_2_2_2', 'meas1_3_1_2_2_3') redis.call('SADD', 'comptag1_3_1_2_3_measurement_keys', 'meas1_3_1_2_3_1', 'meas1_3_1_2_3_2', 'meas1_3_1_2_3_3') redis.call('SADD', 'comptag1_3_1_3_1_measurement_keys', 'meas1_3_1_3_1_1', 'meas1_3_1_3_1_2', 'meas1_3_1_3_1_3') redis.call('SADD', 'comptag1_3_1_3_2_measurement_keys', 'meas1_3_1_3_2_1', 'meas1_3_1_3_2_2', 'meas1_3_1_3_2_3') redis.call('SADD', 'comptag1_3_1_3_3_measurement_keys', 'meas1_3_1_3_3_1', 'meas1_3_1_3_3_2', 'meas1_3_1_3_3_3') redis.call('SADD', 'comptag1_3_2_1_1_measurement_keys', 'meas1_3_2_1_1_1', 'meas1_3_2_1_1_2', 'meas1_3_2_1_1_3') redis.call('SADD', 'comptag1_3_2_1_2_measurement_keys', 'meas1_3_2_1_2_1', 'meas1_3_2_1_2_2', 'meas1_3_2_1_2_3') redis.call('SADD', 'comptag1_3_2_1_3_measurement_keys', 'meas1_3_2_1_3_1', 'meas1_3_2_1_3_2', 'meas1_3_2_1_3_3') redis.call('SADD', 'comptag1_3_2_2_1_measurement_keys', 'meas1_3_2_2_1_1', 'meas1_3_2_2_1_2', 'meas1_3_2_2_1_3') redis.call('SADD', 'comptag1_3_2_2_2_measurement_keys', 'meas1_3_2_2_2_1', 'meas1_3_2_2_2_2', 'meas1_3_2_2_2_3') redis.call('SADD', 'comptag1_3_2_2_3_measurement_keys', 'meas1_3_2_2_3_1', 'meas1_3_2_2_3_2', 'meas1_3_2_2_3_3') redis.call('SADD', 'comptag1_3_2_3_1_measurement_keys', 'meas1_3_2_3_1_1', 'meas1_3_2_3_1_2', 'meas1_3_2_3_1_3') redis.call('SADD', 'comptag1_3_2_3_2_measurement_keys', 'meas1_3_2_3_2_1', 'meas1_3_2_3_2_2', 'meas1_3_2_3_2_3') redis.call('SADD', 'comptag1_3_2_3_3_measurement_keys', 'meas1_3_2_3_3_1', 'meas1_3_2_3_3_2', 'meas1_3_2_3_3_3') redis.call('SADD', 'comptag1_3_3_1_1_measurement_keys', 'meas1_3_3_1_1_1', 'meas1_3_3_1_1_2', 'meas1_3_3_1_1_3') redis.call('SADD', 'comptag1_3_3_1_2_measurement_keys', 'meas1_3_3_1_2_1', 'meas1_3_3_1_2_2', 'meas1_3_3_1_2_3') redis.call('SADD', 'comptag1_3_3_1_3_measurement_keys', 'meas1_3_3_1_3_1', 'meas1_3_3_1_3_2', 'meas1_3_3_1_3_3') redis.call('SADD', 'comptag1_3_3_2_1_measurement_keys', 'meas1_3_3_2_1_1', 'meas1_3_3_2_1_2', 'meas1_3_3_2_1_3') redis.call('SADD', 'comptag1_3_3_2_2_measurement_keys', 'meas1_3_3_2_2_1', 'meas1_3_3_2_2_2', 'meas1_3_3_2_2_3') redis.call('SADD', 'comptag1_3_3_2_3_measurement_keys', 'meas1_3_3_2_3_1', 'meas1_3_3_2_3_2', 'meas1_3_3_2_3_3') redis.call('SADD', 'comptag1_3_3_3_1_measurement_keys', 'meas1_3_3_3_1_1', 'meas1_3_3_3_1_2', 'meas1_3_3_3_1_3') redis.call('SADD', 'comptag1_3_3_3_2_measurement_keys', 'meas1_3_3_3_2_1', 'meas1_3_3_3_2_2', 'meas1_3_3_3_2_3') redis.call('SADD', 'comptag1_3_3_3_3_measurement_keys', 'meas1_3_3_3_3_1', 'meas1_3_3_3_3_2', 'meas1_3_3_3_3_3') redis.call('SADD', 'comptag2_1_1_1_1_measurement_keys', 'meas2_1_1_1_1_1', 'meas2_1_1_1_1_2', 'meas2_1_1_1_1_3') redis.call('SADD', 'comptag2_1_1_1_2_measurement_keys', 'meas2_1_1_1_2_1', 'meas2_1_1_1_2_2', 'meas2_1_1_1_2_3') redis.call('SADD', 'comptag2_1_1_1_3_measurement_keys', 'meas2_1_1_1_3_1', 'meas2_1_1_1_3_2', 'meas2_1_1_1_3_3') redis.call('SADD', 'comptag2_1_1_2_1_measurement_keys', 'meas2_1_1_2_1_1', 'meas2_1_1_2_1_2', 'meas2_1_1_2_1_3') redis.call('SADD', 'comptag2_1_1_2_2_measurement_keys', 'meas2_1_1_2_2_1', 'meas2_1_1_2_2_2', 'meas2_1_1_2_2_3') redis.call('SADD', 'comptag2_1_1_2_3_measurement_keys', 'meas2_1_1_2_3_1', 'meas2_1_1_2_3_2', 'meas2_1_1_2_3_3') redis.call('SADD', 'comptag2_1_1_3_1_measurement_keys', 'meas2_1_1_3_1_1', 'meas2_1_1_3_1_2', 'meas2_1_1_3_1_3') redis.call('SADD', 'comptag2_1_1_3_2_measurement_keys', 'meas2_1_1_3_2_1', 'meas2_1_1_3_2_2', 'meas2_1_1_3_2_3') redis.call('SADD', 'comptag2_1_1_3_3_measurement_keys', 'meas2_1_1_3_3_1', 'meas2_1_1_3_3_2', 'meas2_1_1_3_3_3') redis.call('SADD', 'comptag2_1_2_1_1_measurement_keys', 'meas2_1_2_1_1_1', 'meas2_1_2_1_1_2', 'meas2_1_2_1_1_3') redis.call('SADD', 'comptag2_1_2_1_2_measurement_keys', 'meas2_1_2_1_2_1', 'meas2_1_2_1_2_2', 'meas2_1_2_1_2_3') redis.call('SADD', 'comptag2_1_2_1_3_measurement_keys', 'meas2_1_2_1_3_1', 'meas2_1_2_1_3_2', 'meas2_1_2_1_3_3') redis.call('SADD', 'comptag2_1_2_2_1_measurement_keys', 'meas2_1_2_2_1_1', 'meas2_1_2_2_1_2', 'meas2_1_2_2_1_3') redis.call('SADD', 'comptag2_1_2_2_2_measurement_keys', 'meas2_1_2_2_2_1', 'meas2_1_2_2_2_2', 'meas2_1_2_2_2_3') redis.call('SADD', 'comptag2_1_2_2_3_measurement_keys', 'meas2_1_2_2_3_1', 'meas2_1_2_2_3_2', 'meas2_1_2_2_3_3') redis.call('SADD', 'comptag2_1_2_3_1_measurement_keys', 'meas2_1_2_3_1_1', 'meas2_1_2_3_1_2', 'meas2_1_2_3_1_3') redis.call('SADD', 'comptag2_1_2_3_2_measurement_keys', 'meas2_1_2_3_2_1', 'meas2_1_2_3_2_2', 'meas2_1_2_3_2_3') redis.call('SADD', 'comptag2_1_2_3_3_measurement_keys', 'meas2_1_2_3_3_1', 'meas2_1_2_3_3_2', 'meas2_1_2_3_3_3') redis.call('SADD', 'comptag2_1_3_1_1_measurement_keys', 'meas2_1_3_1_1_1', 'meas2_1_3_1_1_2', 'meas2_1_3_1_1_3') redis.call('SADD', 'comptag2_1_3_1_2_measurement_keys', 'meas2_1_3_1_2_1', 'meas2_1_3_1_2_2', 'meas2_1_3_1_2_3') redis.call('SADD', 'comptag2_1_3_1_3_measurement_keys', 'meas2_1_3_1_3_1', 'meas2_1_3_1_3_2', 'meas2_1_3_1_3_3') redis.call('SADD', 'comptag2_1_3_2_1_measurement_keys', 'meas2_1_3_2_1_1', 'meas2_1_3_2_1_2', 'meas2_1_3_2_1_3') redis.call('SADD', 'comptag2_1_3_2_2_measurement_keys', 'meas2_1_3_2_2_1', 'meas2_1_3_2_2_2', 'meas2_1_3_2_2_3') redis.call('SADD', 'comptag2_1_3_2_3_measurement_keys', 'meas2_1_3_2_3_1', 'meas2_1_3_2_3_2', 'meas2_1_3_2_3_3') redis.call('SADD', 'comptag2_1_3_3_1_measurement_keys', 'meas2_1_3_3_1_1', 'meas2_1_3_3_1_2', 'meas2_1_3_3_1_3') redis.call('SADD', 'comptag2_1_3_3_2_measurement_keys', 'meas2_1_3_3_2_1', 'meas2_1_3_3_2_2', 'meas2_1_3_3_2_3') redis.call('SADD', 'comptag2_1_3_3_3_measurement_keys', 'meas2_1_3_3_3_1', 'meas2_1_3_3_3_2', 'meas2_1_3_3_3_3') redis.call('SADD', 'comptag2_2_1_1_1_measurement_keys', 'meas2_2_1_1_1_1', 'meas2_2_1_1_1_2', 'meas2_2_1_1_1_3') redis.call('SADD', 'comptag2_2_1_1_2_measurement_keys', 'meas2_2_1_1_2_1', 'meas2_2_1_1_2_2', 'meas2_2_1_1_2_3') redis.call('SADD', 'comptag2_2_1_1_3_measurement_keys', 'meas2_2_1_1_3_1', 'meas2_2_1_1_3_2', 'meas2_2_1_1_3_3') redis.call('SADD', 'comptag2_2_1_2_1_measurement_keys', 'meas2_2_1_2_1_1', 'meas2_2_1_2_1_2', 'meas2_2_1_2_1_3') redis.call('SADD', 'comptag2_2_1_2_2_measurement_keys', 'meas2_2_1_2_2_1', 'meas2_2_1_2_2_2', 'meas2_2_1_2_2_3') redis.call('SADD', 'comptag2_2_1_2_3_measurement_keys', 'meas2_2_1_2_3_1', 'meas2_2_1_2_3_2', 'meas2_2_1_2_3_3') redis.call('SADD', 'comptag2_2_1_3_1_measurement_keys', 'meas2_2_1_3_1_1', 'meas2_2_1_3_1_2', 'meas2_2_1_3_1_3') redis.call('SADD', 'comptag2_2_1_3_2_measurement_keys', 'meas2_2_1_3_2_1', 'meas2_2_1_3_2_2', 'meas2_2_1_3_2_3') redis.call('SADD', 'comptag2_2_1_3_3_measurement_keys', 'meas2_2_1_3_3_1', 'meas2_2_1_3_3_2', 'meas2_2_1_3_3_3') redis.call('SADD', 'comptag2_2_2_1_1_measurement_keys', 'meas2_2_2_1_1_1', 'meas2_2_2_1_1_2', 'meas2_2_2_1_1_3') redis.call('SADD', 'comptag2_2_2_1_2_measurement_keys', 'meas2_2_2_1_2_1', 'meas2_2_2_1_2_2', 'meas2_2_2_1_2_3') redis.call('SADD', 'comptag2_2_2_1_3_measurement_keys', 'meas2_2_2_1_3_1', 'meas2_2_2_1_3_2', 'meas2_2_2_1_3_3') redis.call('SADD', 'comptag2_2_2_2_1_measurement_keys', 'meas2_2_2_2_1_1', 'meas2_2_2_2_1_2', 'meas2_2_2_2_1_3') redis.call('SADD', 'comptag2_2_2_2_2_measurement_keys', 'meas2_2_2_2_2_1', 'meas2_2_2_2_2_2', 'meas2_2_2_2_2_3') redis.call('SADD', 'comptag2_2_2_2_3_measurement_keys', 'meas2_2_2_2_3_1', 'meas2_2_2_2_3_2', 'meas2_2_2_2_3_3') redis.call('SADD', 'comptag2_2_2_3_1_measurement_keys', 'meas2_2_2_3_1_1', 'meas2_2_2_3_1_2', 'meas2_2_2_3_1_3') redis.call('SADD', 'comptag2_2_2_3_2_measurement_keys', 'meas2_2_2_3_2_1', 'meas2_2_2_3_2_2', 'meas2_2_2_3_2_3') redis.call('SADD', 'comptag2_2_2_3_3_measurement_keys', 'meas2_2_2_3_3_1', 'meas2_2_2_3_3_2', 'meas2_2_2_3_3_3') redis.call('SADD', 'comptag2_2_3_1_1_measurement_keys', 'meas2_2_3_1_1_1', 'meas2_2_3_1_1_2', 'meas2_2_3_1_1_3') redis.call('SADD', 'comptag2_2_3_1_2_measurement_keys', 'meas2_2_3_1_2_1', 'meas2_2_3_1_2_2', 'meas2_2_3_1_2_3') redis.call('SADD', 'comptag2_2_3_1_3_measurement_keys', 'meas2_2_3_1_3_1', 'meas2_2_3_1_3_2', 'meas2_2_3_1_3_3') redis.call('SADD', 'comptag2_2_3_2_1_measurement_keys', 'meas2_2_3_2_1_1', 'meas2_2_3_2_1_2', 'meas2_2_3_2_1_3') redis.call('SADD', 'comptag2_2_3_2_2_measurement_keys', 'meas2_2_3_2_2_1', 'meas2_2_3_2_2_2', 'meas2_2_3_2_2_3') redis.call('SADD', 'comptag2_2_3_2_3_measurement_keys', 'meas2_2_3_2_3_1', 'meas2_2_3_2_3_2', 'meas2_2_3_2_3_3') redis.call('SADD', 'comptag2_2_3_3_1_measurement_keys', 'meas2_2_3_3_1_1', 'meas2_2_3_3_1_2', 'meas2_2_3_3_1_3') redis.call('SADD', 'comptag2_2_3_3_2_measurement_keys', 'meas2_2_3_3_2_1', 'meas2_2_3_3_2_2', 'meas2_2_3_3_2_3') redis.call('SADD', 'comptag2_2_3_3_3_measurement_keys', 'meas2_2_3_3_3_1', 'meas2_2_3_3_3_2', 'meas2_2_3_3_3_3') redis.call('SADD', 'comptag2_3_1_1_1_measurement_keys', 'meas2_3_1_1_1_1', 'meas2_3_1_1_1_2', 'meas2_3_1_1_1_3') redis.call('SADD', 'comptag2_3_1_1_2_measurement_keys', 'meas2_3_1_1_2_1', 'meas2_3_1_1_2_2', 'meas2_3_1_1_2_3') redis.call('SADD', 'comptag2_3_1_1_3_measurement_keys', 'meas2_3_1_1_3_1', 'meas2_3_1_1_3_2', 'meas2_3_1_1_3_3') redis.call('SADD', 'comptag2_3_1_2_1_measurement_keys', 'meas2_3_1_2_1_1', 'meas2_3_1_2_1_2', 'meas2_3_1_2_1_3') redis.call('SADD', 'comptag2_3_1_2_2_measurement_keys', 'meas2_3_1_2_2_1', 'meas2_3_1_2_2_2', 'meas2_3_1_2_2_3') redis.call('SADD', 'comptag2_3_1_2_3_measurement_keys', 'meas2_3_1_2_3_1', 'meas2_3_1_2_3_2', 'meas2_3_1_2_3_3') redis.call('SADD', 'comptag2_3_1_3_1_measurement_keys', 'meas2_3_1_3_1_1', 'meas2_3_1_3_1_2', 'meas2_3_1_3_1_3') redis.call('SADD', 'comptag2_3_1_3_2_measurement_keys', 'meas2_3_1_3_2_1', 'meas2_3_1_3_2_2', 'meas2_3_1_3_2_3') redis.call('SADD', 'comptag2_3_1_3_3_measurement_keys', 'meas2_3_1_3_3_1', 'meas2_3_1_3_3_2', 'meas2_3_1_3_3_3') redis.call('SADD', 'comptag2_3_2_1_1_measurement_keys', 'meas2_3_2_1_1_1', 'meas2_3_2_1_1_2', 'meas2_3_2_1_1_3') redis.call('SADD', 'comptag2_3_2_1_2_measurement_keys', 'meas2_3_2_1_2_1', 'meas2_3_2_1_2_2', 'meas2_3_2_1_2_3') redis.call('SADD', 'comptag2_3_2_1_3_measurement_keys', 'meas2_3_2_1_3_1', 'meas2_3_2_1_3_2', 'meas2_3_2_1_3_3') redis.call('SADD', 'comptag2_3_2_2_1_measurement_keys', 'meas2_3_2_2_1_1', 'meas2_3_2_2_1_2', 'meas2_3_2_2_1_3') redis.call('SADD', 'comptag2_3_2_2_2_measurement_keys', 'meas2_3_2_2_2_1', 'meas2_3_2_2_2_2', 'meas2_3_2_2_2_3') redis.call('SADD', 'comptag2_3_2_2_3_measurement_keys', 'meas2_3_2_2_3_1', 'meas2_3_2_2_3_2', 'meas2_3_2_2_3_3') redis.call('SADD', 'comptag2_3_2_3_1_measurement_keys', 'meas2_3_2_3_1_1', 'meas2_3_2_3_1_2', 'meas2_3_2_3_1_3') redis.call('SADD', 'comptag2_3_2_3_2_measurement_keys', 'meas2_3_2_3_2_1', 'meas2_3_2_3_2_2', 'meas2_3_2_3_2_3') redis.call('SADD', 'comptag2_3_2_3_3_measurement_keys', 'meas2_3_2_3_3_1', 'meas2_3_2_3_3_2', 'meas2_3_2_3_3_3') redis.call('SADD', 'comptag2_3_3_1_1_measurement_keys', 'meas2_3_3_1_1_1', 'meas2_3_3_1_1_2', 'meas2_3_3_1_1_3') redis.call('SADD', 'comptag2_3_3_1_2_measurement_keys', 'meas2_3_3_1_2_1', 'meas2_3_3_1_2_2', 'meas2_3_3_1_2_3') redis.call('SADD', 'comptag2_3_3_1_3_measurement_keys', 'meas2_3_3_1_3_1', 'meas2_3_3_1_3_2', 'meas2_3_3_1_3_3') redis.call('SADD', 'comptag2_3_3_2_1_measurement_keys', 'meas2_3_3_2_1_1', 'meas2_3_3_2_1_2', 'meas2_3_3_2_1_3') redis.call('SADD', 'comptag2_3_3_2_2_measurement_keys', 'meas2_3_3_2_2_1', 'meas2_3_3_2_2_2', 'meas2_3_3_2_2_3') redis.call('SADD', 'comptag2_3_3_2_3_measurement_keys', 'meas2_3_3_2_3_1', 'meas2_3_3_2_3_2', 'meas2_3_3_2_3_3') redis.call('SADD', 'comptag2_3_3_3_1_measurement_keys', 'meas2_3_3_3_1_1', 'meas2_3_3_3_1_2', 'meas2_3_3_3_1_3') redis.call('SADD', 'comptag2_3_3_3_2_measurement_keys', 'meas2_3_3_3_2_1', 'meas2_3_3_3_2_2', 'meas2_3_3_3_2_3') redis.call('SADD', 'comptag2_3_3_3_3_measurement_keys', 'meas2_3_3_3_3_1', 'meas2_3_3_3_3_2', 'meas2_3_3_3_3_3') redis.call('SADD', 'comptag3_1_1_1_1_measurement_keys', 'meas3_1_1_1_1_1', 'meas3_1_1_1_1_2', 'meas3_1_1_1_1_3') redis.call('SADD', 'comptag3_1_1_1_2_measurement_keys', 'meas3_1_1_1_2_1', 'meas3_1_1_1_2_2', 'meas3_1_1_1_2_3') redis.call('SADD', 'comptag3_1_1_1_3_measurement_keys', 'meas3_1_1_1_3_1', 'meas3_1_1_1_3_2', 'meas3_1_1_1_3_3') redis.call('SADD', 'comptag3_1_1_2_1_measurement_keys', 'meas3_1_1_2_1_1', 'meas3_1_1_2_1_2', 'meas3_1_1_2_1_3') redis.call('SADD', 'comptag3_1_1_2_2_measurement_keys', 'meas3_1_1_2_2_1', 'meas3_1_1_2_2_2', 'meas3_1_1_2_2_3') redis.call('SADD', 'comptag3_1_1_2_3_measurement_keys', 'meas3_1_1_2_3_1', 'meas3_1_1_2_3_2', 'meas3_1_1_2_3_3') redis.call('SADD', 'comptag3_1_1_3_1_measurement_keys', 'meas3_1_1_3_1_1', 'meas3_1_1_3_1_2', 'meas3_1_1_3_1_3') redis.call('SADD', 'comptag3_1_1_3_2_measurement_keys', 'meas3_1_1_3_2_1', 'meas3_1_1_3_2_2', 'meas3_1_1_3_2_3') redis.call('SADD', 'comptag3_1_1_3_3_measurement_keys', 'meas3_1_1_3_3_1', 'meas3_1_1_3_3_2', 'meas3_1_1_3_3_3') redis.call('SADD', 'comptag3_1_3_1_1_measurement_keys', 'meas3_1_3_1_1_1', 'meas3_1_3_1_1_2', 'meas3_1_3_1_1_3') redis.call('SADD', 'comptag3_1_3_1_2_measurement_keys', 'meas3_1_3_1_2_1', 'meas3_1_3_1_2_2', 'meas3_1_3_1_2_3') redis.call('SADD', 'comptag3_1_3_1_3_measurement_keys', 'meas3_1_3_1_3_1', 'meas3_1_3_1_3_2', 'meas3_1_3_1_3_3') redis.call('SADD', 'comptag3_1_3_2_1_measurement_keys', 'meas3_1_3_2_1_1', 'meas3_1_3_2_1_2', 'meas3_1_3_2_1_3') redis.call('SADD', 'comptag3_1_3_2_2_measurement_keys', 'meas3_1_3_2_2_1', 'meas3_1_3_2_2_2', 'meas3_1_3_2_2_3') redis.call('SADD', 'comptag3_1_3_2_3_measurement_keys', 'meas3_1_3_2_3_1', 'meas3_1_3_2_3_2', 'meas3_1_3_2_3_3') redis.call('SADD', 'comptag3_1_3_3_1_measurement_keys', 'meas3_1_3_3_1_1', 'meas3_1_3_3_1_2', 'meas3_1_3_3_1_3') redis.call('SADD', 'comptag3_1_3_3_2_measurement_keys', 'meas3_1_3_3_2_1', 'meas3_1_3_3_2_2', 'meas3_1_3_3_2_3') redis.call('SADD', 'comptag3_1_3_3_3_measurement_keys', 'meas3_1_3_3_3_1', 'meas3_1_3_3_3_2', 'meas3_1_3_3_3_3') redis.call('SADD', 'comptag3_2_1_1_1_measurement_keys', 'meas3_2_1_1_1_1', 'meas3_2_1_1_1_2', 'meas3_2_1_1_1_3') redis.call('SADD', 'comptag3_2_1_1_2_measurement_keys', 'meas3_2_1_1_2_1', 'meas3_2_1_1_2_2', 'meas3_2_1_1_2_3') redis.call('SADD', 'comptag3_2_1_1_3_measurement_keys', 'meas3_2_1_1_3_1', 'meas3_2_1_1_3_2', 'meas3_2_1_1_3_3') redis.call('SADD', 'comptag3_2_1_2_1_measurement_keys', 'meas3_2_1_2_1_1', 'meas3_2_1_2_1_2', 'meas3_2_1_2_1_3') redis.call('SADD', 'comptag3_2_1_2_2_measurement_keys', 'meas3_2_1_2_2_1', 'meas3_2_1_2_2_2', 'meas3_2_1_2_2_3') redis.call('SADD', 'comptag3_2_1_2_3_measurement_keys', 'meas3_2_1_2_3_1', 'meas3_2_1_2_3_2', 'meas3_2_1_2_3_3') redis.call('SADD', 'comptag3_2_1_3_1_measurement_keys', 'meas3_2_1_3_1_1', 'meas3_2_1_3_1_2', 'meas3_2_1_3_1_3') redis.call('SADD', 'comptag3_2_1_3_2_measurement_keys', 'meas3_2_1_3_2_1', 'meas3_2_1_3_2_2', 'meas3_2_1_3_2_3') redis.call('SADD', 'comptag3_2_1_3_3_measurement_keys', 'meas3_2_1_3_3_1', 'meas3_2_1_3_3_2', 'meas3_2_1_3_3_3') redis.call('SADD', 'comptag3_2_2_1_1_measurement_keys', 'meas3_2_2_1_1_1', 'meas3_2_2_1_1_2', 'meas3_2_2_1_1_3') redis.call('SADD', 'comptag3_2_2_1_2_measurement_keys', 'meas3_2_2_1_2_1', 'meas3_2_2_1_2_2', 'meas3_2_2_1_2_3') redis.call('SADD', 'comptag3_2_2_1_3_measurement_keys', 'meas3_2_2_1_3_1', 'meas3_2_2_1_3_2', 'meas3_2_2_1_3_3') redis.call('SADD', 'comptag3_2_2_2_1_measurement_keys', 'meas3_2_2_2_1_1', 'meas3_2_2_2_1_2', 'meas3_2_2_2_1_3') redis.call('SADD', 'comptag3_2_2_2_2_measurement_keys', 'meas3_2_2_2_2_1', 'meas3_2_2_2_2_2', 'meas3_2_2_2_2_3') redis.call('SADD', 'comptag3_2_2_2_3_measurement_keys', 'meas3_2_2_2_3_1', 'meas3_2_2_2_3_2', 'meas3_2_2_2_3_3') redis.call('SADD', 'comptag3_2_2_3_1_measurement_keys', 'meas3_2_2_3_1_1', 'meas3_2_2_3_1_2', 'meas3_2_2_3_1_3') redis.call('SADD', 'comptag3_2_2_3_2_measurement_keys', 'meas3_2_2_3_2_1', 'meas3_2_2_3_2_2', 'meas3_2_2_3_2_3') redis.call('SADD', 'comptag3_2_2_3_3_measurement_keys', 'meas3_2_2_3_3_1', 'meas3_2_2_3_3_2', 'meas3_2_2_3_3_3') redis.call('SADD', 'comptag3_2_3_1_1_measurement_keys', 'meas3_2_3_1_1_1', 'meas3_2_3_1_1_2', 'meas3_2_3_1_1_3') redis.call('SADD', 'comptag3_2_3_1_2_measurement_keys', 'meas3_2_3_1_2_1', 'meas3_2_3_1_2_2', 'meas3_2_3_1_2_3') redis.call('SADD', 'comptag3_2_3_1_3_measurement_keys', 'meas3_2_3_1_3_1', 'meas3_2_3_1_3_2', 'meas3_2_3_1_3_3') redis.call('SADD', 'comptag3_2_3_2_1_measurement_keys', 'meas3_2_3_2_1_1', 'meas3_2_3_2_1_2', 'meas3_2_3_2_1_3') redis.call('SADD', 'comptag3_2_3_2_2_measurement_keys', 'meas3_2_3_2_2_1', 'meas3_2_3_2_2_2', 'meas3_2_3_2_2_3') redis.call('SADD', 'comptag3_2_3_2_3_measurement_keys', 'meas3_2_3_2_3_1', 'meas3_2_3_2_3_2', 'meas3_2_3_2_3_3') redis.call('SADD', 'comptag3_2_3_3_1_measurement_keys', 'meas3_2_3_3_1_1', 'meas3_2_3_3_1_2', 'meas3_2_3_3_1_3') redis.call('SADD', 'comptag3_2_3_3_2_measurement_keys', 'meas3_2_3_3_2_1', 'meas3_2_3_3_2_2', 'meas3_2_3_3_2_3') redis.call('SADD', 'comptag3_2_3_3_3_measurement_keys', 'meas3_2_3_3_3_1', 'meas3_2_3_3_3_2', 'meas3_2_3_3_3_3') redis.call('SADD', 'comptag3_3_1_1_1_measurement_keys', 'meas3_3_1_1_1_1', 'meas3_3_1_1_1_2', 'meas3_3_1_1_1_3') redis.call('SADD', 'comptag3_3_1_1_2_measurement_keys', 'meas3_3_1_1_2_1', 'meas3_3_1_1_2_2', 'meas3_3_1_1_2_3') redis.call('SADD', 'comptag3_3_1_1_3_measurement_keys', 'meas3_3_1_1_3_1', 'meas3_3_1_1_3_2', 'meas3_3_1_1_3_3') redis.call('SADD', 'comptag3_3_1_2_1_measurement_keys', 'meas3_3_1_2_1_1', 'meas3_3_1_2_1_2', 'meas3_3_1_2_1_3') redis.call('SADD', 'comptag3_3_1_2_2_measurement_keys', 'meas3_3_1_2_2_1', 'meas3_3_1_2_2_2', 'meas3_3_1_2_2_3') redis.call('SADD', 'comptag3_3_1_2_3_measurement_keys', 'meas3_3_1_2_3_1', 'meas3_3_1_2_3_2', 'meas3_3_1_2_3_3') redis.call('SADD', 'comptag3_3_1_3_1_measurement_keys', 'meas3_3_1_3_1_1', 'meas3_3_1_3_1_2', 'meas3_3_1_3_1_3') redis.call('SADD', 'comptag3_3_1_3_2_measurement_keys', 'meas3_3_1_3_2_1', 'meas3_3_1_3_2_2', 'meas3_3_1_3_2_3') redis.call('SADD', 'comptag3_3_1_3_3_measurement_keys', 'meas3_3_1_3_3_1', 'meas3_3_1_3_3_2', 'meas3_3_1_3_3_3') redis.call('SADD', 'comptag3_3_2_1_1_measurement_keys', 'meas3_3_2_1_1_1', 'meas3_3_2_1_1_2', 'meas3_3_2_1_1_3') redis.call('SADD', 'comptag3_3_2_1_2_measurement_keys', 'meas3_3_2_1_2_1', 'meas3_3_2_1_2_2', 'meas3_3_2_1_2_3') redis.call('SADD', 'comptag3_3_2_1_3_measurement_keys', 'meas3_3_2_1_3_1', 'meas3_3_2_1_3_2', 'meas3_3_2_1_3_3') redis.call('SADD', 'comptag3_3_2_2_1_measurement_keys', 'meas3_3_2_2_1_1', 'meas3_3_2_2_1_2', 'meas3_3_2_2_1_3') redis.call('SADD', 'comptag3_3_2_2_2_measurement_keys', 'meas3_3_2_2_2_1', 'meas3_3_2_2_2_2', 'meas3_3_2_2_2_3') redis.call('SADD', 'comptag3_3_2_2_3_measurement_keys', 'meas3_3_2_2_3_1', 'meas3_3_2_2_3_2', 'meas3_3_2_2_3_3') redis.call('SADD', 'comptag3_3_2_3_1_measurement_keys', 'meas3_3_2_3_1_1', 'meas3_3_2_3_1_2', 'meas3_3_2_3_1_3') redis.call('SADD', 'comptag3_3_2_3_2_measurement_keys', 'meas3_3_2_3_2_1', 'meas3_3_2_3_2_2', 'meas3_3_2_3_2_3') redis.call('SADD', 'comptag3_3_2_3_3_measurement_keys', 'meas3_3_2_3_3_1', 'meas3_3_2_3_3_2', 'meas3_3_2_3_3_3') redis.call('SADD', 'comptag3_3_3_1_1_measurement_keys', 'meas3_3_3_1_1_1', 'meas3_3_3_1_1_2', 'meas3_3_3_1_1_3') redis.call('SADD', 'comptag3_3_3_1_2_measurement_keys', 'meas3_3_3_1_2_1', 'meas3_3_3_1_2_2', 'meas3_3_3_1_2_3') redis.call('SADD', 'comptag3_3_3_1_3_measurement_keys', 'meas3_3_3_1_3_1', 'meas3_3_3_1_3_2', 'meas3_3_3_1_3_3') redis.call('SADD', 'comptag3_3_3_2_1_measurement_keys', 'meas3_3_3_2_1_1', 'meas3_3_3_2_1_2', 'meas3_3_3_2_1_3') redis.call('SADD', 'comptag3_3_3_2_2_measurement_keys', 'meas3_3_3_2_2_1', 'meas3_3_3_2_2_2', 'meas3_3_3_2_2_3') redis.call('SADD', 'comptag3_3_3_2_3_measurement_keys', 'meas3_3_3_2_3_1', 'meas3_3_3_2_3_2', 'meas3_3_3_2_3_3') redis.call('SADD', 'comptag3_3_3_3_1_measurement_keys', 'meas3_3_3_3_1_1', 'meas3_3_3_3_1_2', 'meas3_3_3_3_1_3') redis.call('SADD', 'comptag3_3_3_3_2_measurement_keys', 'meas3_3_3_3_2_1', 'meas3_3_3_3_2_2', 'meas3_3_3_3_2_3') redis.call('SADD', 'comptag3_3_3_3_3_measurement_keys', 'meas3_3_3_3_3_1', 'meas3_3_3_3_3_2', 'meas3_3_3_3_3_3') local dict_key = 'search_suggestions_dict' redis.call('FT.SUGADD', dict_key, 'grid1', 1) redis.call('FT.SUGADD', dict_key, 'grid2', 1) redis.call('FT.SUGADD', dict_key, 'grid3', 1) redis.call('FT.SUGADD', dict_key, 'grid1.zone1_1', 1) redis.call('FT.SUGADD', dict_key, 'grid1.zone1_2', 1) redis.call('FT.SUGADD', dict_key, 'grid1.zone1_3', 1) redis.call('FT.SUGADD', dict_key, 'grid2.zone2_1', 1) redis.call('FT.SUGADD', dict_key, 'grid2.zone2_2', 1) redis.call('FT.SUGADD', dict_key, 'grid2.zone2_3', 1) redis.call('FT.SUGADD', dict_key, 'grid3.zone3_1', 1) redis.call('FT.SUGADD', dict_key, 'grid3.zone3_2', 1) redis.call('FT.SUGADD', dict_key, 'grid3.zone3_3', 1) redis.call('FT.SUGADD', dict_key, 'grid1.zone1_1.station1_1_1', 1) redis.call('FT.SUGADD', dict_key, 'grid1.zone1_1.station1_1_2', 1) redis.call('FT.SUGADD', dict_key, 'grid1.zone1_1.station1_1_3', 1) redis.call('FT.SUGADD', dict_key, 'grid1.zone1_2.station1_2_1', 1) redis.call('FT.SUGADD', dict_key, 'grid1.zone1_2.station1_2_2', 1) redis.call('FT.SUGADD', dict_key, 'grid1.zone1_2.station1_2_3', 1) redis.call('FT.SUGADD', dict_key, 'grid1.zone1_3.station1_3_1', 1) redis.call('FT.SUGADD', dict_key, 'grid1.zone1_3.station1_3_2', 1) redis.call('FT.SUGADD', dict_key, 'grid1.zone1_3.station1_3_3', 1) redis.call('FT.SUGADD', dict_key, 'grid1.zone2_1.station2_1_1', 1) redis.call('FT.SUGADD', dict_key, 'grid1.zone2_1.station2_1_2', 1) redis.call('FT.SUGADD', dict_key, 'grid1.zone2_1.station2_1_3', 1) redis.call('FT.SUGADD', dict_key, 'grid1.zone2_2.station2_2_1', 1) redis.call('FT.SUGADD', dict_key, 'grid1.zone2_2.station2_2_2', 1) redis.call('FT.SUGADD', dict_key, 'grid1.zone2_2.station2_2_3', 1) redis.call('FT.SUGADD', dict_key, 'grid1.zone2_3.station2_3_1', 1) redis.call('FT.SUGADD', dict_key, 'grid1.zone2_3.station2_3_2', 1) redis.call('FT.SUGADD', dict_key, 'grid1.zone2_3.station2_3_3', 1) redis.call('FT.SUGADD', dict_key, 'grid1.zone3_1.station3_1_1', 1) redis.call('FT.SUGADD', dict_key, 'grid1.zone3_1.station3_1_2', 1) redis.call('FT.SUGADD', dict_key, 'grid1.zone3_1.station3_1_3', 1) redis.call('FT.SUGADD', dict_key, 'grid1.zone3_2.station3_2_1', 1) redis.call('FT.SUGADD', dict_key, 'grid1.zone3_2.station3_2_2', 1) redis.call('FT.SUGADD', dict_key, 'grid1.zone3_2.station3_2_3', 1) redis.call('FT.SUGADD', dict_key, 'grid1.zone3_3.station3_3_1', 1) redis.call('FT.SUGADD', dict_key, 'grid1.zone3_3.station3_3_2', 1) redis.call('FT.SUGADD', dict_key, 'grid1.zone3_3.station3_3_3', 1) redis.call('FT.SUGADD', dict_key, 'grid2.zone1_1.station1_1_1', 1) redis.call('FT.SUGADD', dict_key, 'grid2.zone1_1.station1_1_2', 1) redis.call('FT.SUGADD', dict_key, 'grid2.zone1_1.station1_1_3', 1) redis.call('FT.SUGADD', dict_key, 'grid2.zone1_2.station1_2_1', 1) redis.call('FT.SUGADD', dict_key, 'grid2.zone1_2.station1_2_2', 1) redis.call('FT.SUGADD', dict_key, 'grid2.zone1_2.station1_2_3', 1) redis.call('FT.SUGADD', dict_key, 'grid2.zone1_3.station1_3_1', 1) redis.call('FT.SUGADD', dict_key, 'grid2.zone1_3.station1_3_2', 1) redis.call('FT.SUGADD', dict_key, 'grid2.zone1_3.station1_3_3', 1) redis.call('FT.SUGADD', dict_key, 'grid2.zone2_1.station2_1_1', 1) redis.call('FT.SUGADD', dict_key, 'grid2.zone2_1.station2_1_2', 1) redis.call('FT.SUGADD', dict_key, 'grid2.zone2_1.station2_1_3', 1) redis.call('FT.SUGADD', dict_key, 'grid2.zone2_2.station2_2_1', 1) redis.call('FT.SUGADD', dict_key, 'grid2.zone2_2.station2_2_2', 1) redis.call('FT.SUGADD', dict_key, 'grid2.zone2_2.station2_2_3', 1) redis.call('FT.SUGADD', dict_key, 'grid2.zone2_3.station2_3_1', 1) redis.call('FT.SUGADD', dict_key, 'grid2.zone2_3.station2_3_2', 1) redis.call('FT.SUGADD', dict_key, 'grid2.zone2_3.station2_3_3', 1) redis.call('FT.SUGADD', dict_key, 'grid2.zone3_1.station3_1_1', 1) redis.call('FT.SUGADD', dict_key, 'grid2.zone3_1.station3_1_2', 1) redis.call('FT.SUGADD', dict_key, 'grid2.zone3_1.station3_1_3', 1) redis.call('FT.SUGADD', dict_key, 'grid2.zone3_2.station3_2_1', 1) redis.call('FT.SUGADD', dict_key, 'grid2.zone3_2.station3_2_2', 1) redis.call('FT.SUGADD', dict_key, 'grid2.zone3_2.station3_2_3', 1) redis.call('FT.SUGADD', dict_key, 'grid2.zone3_3.station3_3_1', 1) redis.call('FT.SUGADD', dict_key, 'grid2.zone3_3.station3_3_2', 1) redis.call('FT.SUGADD', dict_key, 'grid2.zone3_3.station3_3_3', 1) redis.call('FT.SUGADD', dict_key, 'grid3.zone1_1.station1_1_1', 1) redis.call('FT.SUGADD', dict_key, 'grid3.zone1_1.station1_1_2', 1) redis.call('FT.SUGADD', dict_key, 'grid3.zone1_1.station1_1_3', 1) redis.call('FT.SUGADD', dict_key, 'grid3.zone1_2.station1_2_1', 1) redis.call('FT.SUGADD', dict_key, 'grid3.zone1_2.station1_2_2', 1) redis.call('FT.SUGADD', dict_key, 'grid3.zone1_2.station1_2_3', 1) redis.call('FT.SUGADD', dict_key, 'grid3.zone1_3.station1_3_1', 1) redis.call('FT.SUGADD', dict_key, 'grid3.zone1_3.station1_3_2', 1) redis.call('FT.SUGADD', dict_key, 'grid3.zone1_3.station1_3_3', 1) redis.call('FT.SUGADD', dict_key, 'grid3.zone2_1.station2_1_1', 1) redis.call('FT.SUGADD', dict_key, 'grid3.zone2_1.station2_1_2', 1) redis.call('FT.SUGADD', dict_key, 'grid3.zone2_1.station2_1_3', 1) redis.call('FT.SUGADD', dict_key, 'grid3.zone2_2.station2_2_1', 1) redis.call('FT.SUGADD', dict_key, 'grid3.zone2_2.station2_2_2', 1) redis.call('FT.SUGADD', dict_key, 'grid3.zone2_2.station2_2_3', 1) redis.call('FT.SUGADD', dict_key, 'grid3.zone2_3.station2_3_1', 1) redis.call('FT.SUGADD', dict_key, 'grid3.zone2_3.station2_3_2', 1) redis.call('FT.SUGADD', dict_key, 'grid3.zone2_3.station2_3_3', 1) redis.call('FT.SUGADD', dict_key, 'grid3.zone3_1.station3_1_1', 1) redis.call('FT.SUGADD', dict_key, 'grid3.zone3_1.station3_1_2', 1) redis.call('FT.SUGADD', dict_key, 'grid3.zone3_1.station3_1_3', 1) redis.call('FT.SUGADD', dict_key, 'grid3.zone3_2.station3_2_1', 1) redis.call('FT.SUGADD', dict_key, 'grid3.zone3_2.station3_2_2', 1) redis.call('FT.SUGADD', dict_key, 'grid3.zone3_2.station3_2_3', 1) redis.call('FT.SUGADD', dict_key, 'grid3.zone3_3.station3_3_1', 1) redis.call('FT.SUGADD', dict_key, 'grid3.zone3_3.station3_3_2', 1) redis.call('FT.SUGADD', dict_key, 'grid3.zone3_3.station3_3_3', 1) redis.call('FT.SUGADD', dict_key, 'grid1.zone1_1.station1_1_1.ns1_1_1_1', 1) redis.call('FT.SUGADD', dict_key, 'grid1.zone1_1.station1_1_1.ns1_1_1_2', 1) redis.call('FT.SUGADD', dict_key, 'grid1.zone1_1.station1_1_1.ns1_1_1_3', 1) redis.call('FT.SUGADD', dict_key, 'grid1.zone1_1.station1_1_2.ns1_1_1_1', 1) redis.call('FT.SUGADD', dict_key, 'grid1.zone1_1.station1_1_2.ns1_1_1_2', 1) redis.call('FT.SUGADD', dict_key, 'grid1.zone1_1.station1_1_2.ns1_1_1_3', 1) redis.call('FT.SUGADD', dict_key, 'grid1.zone1_1.station1_1_3.ns1_1_1_1', 1) redis.call('FT.SUGADD', dict_key, 'grid1.zone1_1.station1_1_3.ns1_1_1_2', 1) redis.call('FT.SUGADD', dict_key, 'grid1.zone1_1.station1_1_3.ns1_1_1_3', 1) return 'OK' ``` 在Redis CLI 中导入命令 1. 使用 `EVAL "lua脚本" 0`即可成功导入数据 2. 使用 `SCRIPT LOAD "lua脚本"`加载脚本,然后使用 `EVAL SHA1值 0` 命令执行上一步存储命令返回的哈希值即可 ### 3\. 启动 ModelRT 服务 #### 3.1 配置服务配置文件 以下表格为配置文件参数说明表 | 类别 | 参数名 | 作用描述 | 示例值 | | :--- | :--- | :--- | :--- | | **Postgres** | `host` | PostgreSQL 数据库服务器的 $\text{IP}$ 地址或域名。 | `"192.168.1.101"` | | | `port` | PostgreSQL 数据库服务器的端口号。 | `5432` | | | `database` | 连接的数据库名称。 | `"demo"` | | | `user` | 连接数据库所使用的用户名。 | `"postgres"` | | | `password` | 连接数据库所使用的密码。 | `"coslight"` | | **Kafka** | `servers` | Kafka 集群的 $\text{Bootstrap Server}$ 地址列表(通常是 $\text{host:port}$ 形式,多个地址用逗号分隔)。 | `"localhost:9092"` | | | `port` | Kafka 服务器的端口号。 | `9092` | | | `group_id` | 消费者组 $\text{ID}$,用于标识和管理一组相关的消费者。 | `"modelRT"` | | | `topic` | Kafka 消息的主题名称。 | `""` | | | `auto_offset_reset` | 消费者首次启动或 $\text{Offset}$ 无效时,从哪个位置开始消费(如 `earliest` 或 `latest`)。 | `"earliest"` | | | `enable_auto_commit` | 是否自动提交 $\text{Offset}$。设为 $\text{false}$ 通常用于手动控制 $\text{Offset}$ 提交。 | `"false"` | | | `read_message_time_duration` | 读取消息时的超时或等待时间。 | `”0.5s"` | | **Logger (Zap)** | `mode` | 日志模式,通常为 `development`(开发)或 `production`(生产)。影响日志格式。 | `"development"` | | | `level` | 最低日志级别(如 $\text{debug, info, warn, error}$)。 | `"debug"` | | | `filepath` | 日志文件的输出路径和名称格式(`%s` 会被替换为日期等)。 | `"/Users/douxu/Workspace/coslight/modelRT/modelRT-%s.log"` | | | `maxsize` | 单个日志文件最大大小(单位:$\text{MB}$)。 | `1` | | | `maxbackups` | 保留旧日志文件的最大个数。 | `5` | | | `maxage` | 保留旧日志文件的最大天数。 | `30` | | | `compress` | 是否压缩备份的日志文件。 | `false` | | **Ants Pool** | `parse_concurrent_quantity` | 用于解析任务的协程池最大并发数量。 | `10` | | | `rtd_receive_concurrent_quantity` | 用于实时数据接收任务的协程池最大并发数量。 | `10` | | **Locker Redis** | `addr` | 分布式锁服务所使用的 $\text{Redis}$ 地址。 | `"127.0.0.1:6379"` | | | `password` | $\text{Locker Redis}$ 的密码。 | `""` | | | `db` | $\text{Locker Redis}$ 使用的数据库编号。 | `1` | | | `poolsize` | $\text{Locker Redis}$ 连接池的最大连接数。 | `50` | | | `timeout` | $\text{Locker Redis}$ 连接操作的超时时间(单位:毫秒)。 | `10` | | **Storage Redis** | `addr` | 数据存储服务所使用的 $\text{Redis}$ 地址(例如 $\text{Redisearch}$)。 | `"127.0.0.1:6379"` | | | `password` | $\text{Storage Redis}$ 的密码。 | `""` | | | `db` | $\text{Storage Redis}$ 使用的数据库编号。 | `0` | | | `poolsize` | $\text{Storage Redis}$ 连接池的最大连接数。 | `50` | | | `timeout` | $\text{Storage Redis}$ 连接操作的超时时间(单位:毫秒)。 | `10` | | **Base Config** | `grid_id` | 项目所操作的默认电网 $\text{ID}$。 | `1` | | | `zone_id` | 项目所操作的默认区域 $\text{ID}$。 | `1` | | | `station_id` | 项目所操作的默认变电站 $\text{ID}$。 | `1` | | **Service Config** | `service_name` | 服务名称,用于日志、监控等标识。 | `"modelRT"` | | | `secret_key` | 服务内部使用的秘钥,用于签名或认证。 | `"modelrt_key"` | | **DataRT API** | `host` | 外部 $\text{DataRT}$ 服务的主机地址。 | `"http://127.0.0.1"` | | | `port` | $\text{DataRT}$ 服务的端口号。 | `8888` | | | `polling_api` | 轮询数据的 $\text{API}$ 路径。 | `"datart/getPointData"` | | | `polling_api_method` | 调用该 $\text{API}$ 使用的 $\text{HTTP}$ 方法。 | `"GET"` | #### 3.2 编译 ModelRT 服务 ```bash go build -o model-rt main.go ``` #### 3.3 启动服务 使用编译好的二进制文件进行启动 ```bash ./model-rt ``` #### 3.4 检测服务启动日志 在发现控制台输出如下信息`starting ModelRT server` 后即代表服务启动成功 ### 4\. 后续操作(停止与清理) #### 4.1 停止容器 ```bash docker stop postgres redis ``` #### 4.2 删除容器(删除后数据将丢失) ```bash docker rm postgres redis ```