diff --git a/deploy/deploy.md b/deploy/deploy.md index 391e25c..70db91a 100644 --- a/deploy/deploy.md +++ b/deploy/deploy.md @@ -171,786 +171,15 @@ VALUES ( 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' +```shell +deploy/redis-test-data/measurments-recommend/measurement_injection.go ``` -在Redis CLI 中导入命令 +运行脚本向 Reids 导入数据 -1. 使用 `EVAL "lua脚本" 0`即可成功导入数据 -2. 使用 `SCRIPT LOAD "lua脚本"`加载脚本,然后使用 `EVAL SHA1值 0` 命令执行上一步存储命令返回的哈希值即可 +```shell +go run deploy/redis-test-data/measurments-recommend/measurement_injection.go +``` ### 3\. 启动 ModelRT 服务 diff --git a/deploy/redis-test-data/measurments-recommend/measurement_injection.go b/deploy/redis-test-data/measurments-recommend/measurement_injection.go new file mode 100644 index 0000000..f77828e --- /dev/null +++ b/deploy/redis-test-data/measurments-recommend/measurement_injection.go @@ -0,0 +1,332 @@ +// Package main implement redis test data injection +package main + +import ( + "context" + "fmt" + "log" + + "github.com/RediSearch/redisearch-go/v2/redisearch" + "github.com/redis/go-redis/v9" +) + +var ac *redisearch.Autocompleter + +// InitAutocompleterWithPool define func of initialize the Autocompleter with redigo pool +func init() { + // ac = redisearch.NewAutocompleterFromPool(pool, redisSearchDictName) + ac = redisearch.NewAutocompleter("localhost:6379", redisSearchDictName) +} + +const ( + gridKeysSet = "grid_keys" + zoneKeysSet = "zone_keys" + stationKeysSet = "station_keys" + componentNSPathKeysSet = "component_nspath_keys" + componentTagKeysSet = "component_tag_keys" + configKeysSet = "config_keys" + measurementTagKeysSet = "measurement_tag_keys" + + // Grid -> Zone (e.g., grid1_zones_keys) + gridZoneSetKeyFormat = "grid%d_zones_keys" + // Zone -> Station (e.g., zone1_1_stations_keys) + zoneStationSetKeyFormat = "zone%d_%d_stations_keys" + // Station -> NSPath (e.g., station1_1_1_components_nspath_keys) + stationNSPathKeyFormat = "station%d_%d_%d_components_nspath_keys" + // NSPath -> CompTag (e.g., ns1_1_1_1_components_tag_keys) + nsPathCompTagKeyFormat = "ns%d_%d_%d_%d_components_tag_keys" + // CompTag -> Measurement (e.g., comptag1_1_1_1_1_measurement_keys) + compTagMeasKeyFormat = "comptag%d_%d_%d_%d_%d_measurement_keys" +) + +const ( + redisSearchDictName = "search_suggestions_dict" + defaultScore = 1.0 +) + +var configMetrics = []any{ + "component", "base_extend", "rated", "setup", "model", + "stable", "bay", "craft", "integrity", "behavior", +} + +// BulkInsertAllHierarchySets 是主入口函数,用于协调所有 Set 插入操作。 +func BulkInsertAllHierarchySets(ctx context.Context, rdb *redis.Client) error { + log.Println("starting bulk insertion of Redis hierarchy sets") + + if err := insertStaticSets(ctx, rdb); err != nil { + return fmt.Errorf("static set insertion failed: %w", err) + } + + if err := insertDynamicHierarchy(ctx, rdb); err != nil { + return fmt.Errorf("dynamic hierarchy insertion failed: %w", err) + } + + if err := insertAllHierarchySuggestions(ac); err != nil { + return fmt.Errorf("dynamic hierarchy insertion failed: %w", err) + } + + log.Println("bulk insertion complete.") + return nil +} + +func insertStaticSets(ctx context.Context, rdb *redis.Client) error { + // grid_keys + if err := rdb.SAdd(ctx, gridKeysSet, "grid1", "grid2", "grid3").Err(); err != nil { + return fmt.Errorf("sadd failed for %s: %w", gridKeysSet, err) + } + + // zone_keys (3x3 = 9 members) + zoneMembers := make([]any, 0, 9) + for i := 1; i <= 3; i++ { + for j := 1; j <= 3; j++ { + zoneMembers = append(zoneMembers, fmt.Sprintf("zone%d_%d", i, j)) + } + } + if err := rdb.SAdd(ctx, zoneKeysSet, zoneMembers...).Err(); err != nil { + return fmt.Errorf("sadd failed for %s: %w", zoneKeysSet, err) + } + + // config_keys + if err := rdb.SAdd(ctx, configKeysSet, configMetrics...).Err(); err != nil { + return fmt.Errorf("sadd failed for %s: %w", configKeysSet, err) + } + + log.Println("Static sets (grid_keys, zone_keys, config_keys) inserted.") + return nil +} + +func insertDynamicHierarchy(ctx context.Context, rdb *redis.Client) error { + allStationKeys := make([]any, 0, 27) + allNSPathKeys := make([]any, 0, 81) + allCompTagKeys := make([]any, 0, 243) + allMeasurementTagKeys := make([]any, 0, 729) + + // S: Grid Prefix (1-3) + for S := 1; S <= 3; S++ { + // Grid-Zone Set Key: gridS_zones_keys + gridZoneKey := fmt.Sprintf(gridZoneSetKeyFormat, S) + gridZoneMembers := make([]any, 0, 3) + + // Y: Zone Index (1-3) + for Y := 1; Y <= 3; Y++ { + zoneID := fmt.Sprintf("%d_%d", S, Y) + zoneMember := "zone" + zoneID + gridZoneMembers = append(gridZoneMembers, zoneMember) + + // Zone-Station Set Key: zoneS_Y_stations_keys + zoneStationKey := fmt.Sprintf(zoneStationSetKeyFormat, S, Y) + zoneStationMembers := make([]any, 0, 3) + + // Z: Station Index (1-3) + for Z := 1; Z <= 3; Z++ { + stationID := fmt.Sprintf("%d_%d_%d", S, Y, Z) + stationKey := "station" + stationID + allStationKeys = append(allStationKeys, stationKey) + zoneStationMembers = append(zoneStationMembers, stationKey) + + // Station-NSPath Set Key: stationS_Y_Z_components_nspath_keys + stationNSPathKey := fmt.Sprintf(stationNSPathKeyFormat, S, Y, Z) + stationNSMembers := make([]any, 0, 3) + + // D: NSPath Index (1-3) + for D := 1; D <= 3; D++ { + nsPathID := fmt.Sprintf("%s_%d", stationID, D) + nsPathKey := "ns" + nsPathID + allNSPathKeys = append(allNSPathKeys, nsPathKey) + stationNSMembers = append(stationNSMembers, nsPathKey) + + // NSPath-CompTag Set Key: nsS_Y_Z_D_components_tag_keys + nsCompTagKey := fmt.Sprintf(nsPathCompTagKeyFormat, S, Y, Z, D) + nsCompTagMembers := make([]any, 0, 3) + + // I: CompTag Index (1-3) + for I := 1; I <= 3; I++ { + compTagID := fmt.Sprintf("%s_%d", nsPathID, I) + compTagKey := "cmptag" + compTagID + allCompTagKeys = append(allCompTagKeys, compTagKey) + nsCompTagMembers = append(nsCompTagMembers, compTagKey) + + // CompTag-Measurement Set Key: comptagS_Y_Z_D_I_measurement_keys + compTagMeasKey := fmt.Sprintf(compTagMeasKeyFormat, S, Y, Z, D, I) + compTagMeasMembers := make([]any, 0, 3) + + // M: Measurement Index (1-3) + for M := 1; M <= 3; M++ { + measurementID := fmt.Sprintf("%s_%d", compTagID, M) + measurementKey := "meas" + measurementID + allMeasurementTagKeys = append(allMeasurementTagKeys, measurementKey) + compTagMeasMembers = append(compTagMeasMembers, measurementKey) + } + + if err := rdb.SAdd(ctx, compTagMeasKey, compTagMeasMembers...).Err(); err != nil { + return fmt.Errorf("sadd failed for %s: %w", compTagMeasKey, err) + } + } + + if err := rdb.SAdd(ctx, nsCompTagKey, nsCompTagMembers...).Err(); err != nil { + return fmt.Errorf("sadd failed for %s: %w", nsCompTagKey, err) + } + } + + if err := rdb.SAdd(ctx, stationNSPathKey, stationNSMembers...).Err(); err != nil { + return fmt.Errorf("sadd failed for %s: %w", stationNSPathKey, err) + } + } + + if err := rdb.SAdd(ctx, zoneStationKey, zoneStationMembers...).Err(); err != nil { + return fmt.Errorf("sadd failed for %s: %w", zoneStationKey, err) + } + + } + + if err := rdb.SAdd(ctx, gridZoneKey, gridZoneMembers...).Err(); err != nil { + return fmt.Errorf("sadd failed for %s: %w", gridZoneKey, err) + } + } + + // 插入所有顶层动态 Set (将所有成员一次性插入到全局 Set 中) + if err := rdb.SAdd(ctx, stationKeysSet, allStationKeys...).Err(); err != nil { + return fmt.Errorf("sadd failed for %s: %w", stationKeysSet, err) + } + if err := rdb.SAdd(ctx, componentNSPathKeysSet, allNSPathKeys...).Err(); err != nil { + return fmt.Errorf("sadd failed for %s: %w", componentNSPathKeysSet, err) + } + if err := rdb.SAdd(ctx, componentTagKeysSet, allCompTagKeys...).Err(); err != nil { + return fmt.Errorf("sadd failed for %s: %w", componentTagKeysSet, err) + } + if err := rdb.SAdd(ctx, measurementTagKeysSet, allMeasurementTagKeys...).Err(); err != nil { + return fmt.Errorf("sadd failed for %s: %w", measurementTagKeysSet, err) + } + + log.Printf("inserted %d stations, %d nspaths, %d comptags, and %d measurements.\n", + len(allStationKeys), len(allNSPathKeys), len(allCompTagKeys), len(allMeasurementTagKeys)) + + return nil +} + +func insertAllHierarchySuggestions(ac *redisearch.Autocompleter) error { + suggestions := make([]redisearch.Suggestion, 0, 10000) // 预估容量:~2430 (Metric) + ~1100 (Path Prefixes) + + // S: grid Index (1-3) + for S := 1; S <= 3; S++ { + gridStr := fmt.Sprintf("grid%d", S) + suggestions = append(suggestions, redisearch.Suggestion{Term: gridStr, Score: defaultScore}) + + // Y: zone Index (1-3) + for Y := 1; Y <= 3; Y++ { + zoneStr := fmt.Sprintf("zone%d_%d", S, Y) + gridZonePath := fmt.Sprintf("%s.%s", gridStr, zoneStr) + suggestions = append(suggestions, redisearch.Suggestion{Term: gridZonePath, Score: defaultScore}) + + // Z: station Index (1-3) + for Z := 1; Z <= 3; Z++ { + stationStr := fmt.Sprintf("station%d_%d_%d", S, Y, Z) + gridZoneStationPath := fmt.Sprintf("%s.%s", gridZonePath, stationStr) + suggestions = append(suggestions, redisearch.Suggestion{Term: gridZoneStationPath, Score: defaultScore}) + + // D: nsPath Index (1-3) + for D := 1; D <= 3; D++ { + nsPathStr := fmt.Sprintf("ns%d_%d_%d_%d", S, Y, Z, D) + gridZoneStationNSPath := fmt.Sprintf("%s.%s", gridZoneStationPath, nsPathStr) + suggestions = append(suggestions, redisearch.Suggestion{Term: gridZoneStationNSPath, Score: defaultScore}) + + // I: compTag Index (1-3) + for I := 1; I <= 3; I++ { + compTagStr := fmt.Sprintf("comptag%d_%d_%d_%d_%d", S, Y, Z, D, I) + fullCompTagPath := fmt.Sprintf("%s.%s", gridZoneStationNSPath, compTagStr) + suggestions = append(suggestions, redisearch.Suggestion{Term: fullCompTagPath, Score: defaultScore}) + + for _, metric := range configMetrics { + fullMetricPath := fmt.Sprintf("%s.%s", fullCompTagPath, metric) + suggestions = append(suggestions, redisearch.Suggestion{Term: fullMetricPath, Score: defaultScore}) + // J: measTag Index (1-3) + for J := 1; J <= 3; J++ { + measTagStr := fmt.Sprintf("comptag%d_%d_%d_%d_%d_%d", S, Y, Z, D, I, J) + fullMeasurementPath := fmt.Sprintf("%s.%s", fullMetricPath, measTagStr) + suggestions = append(suggestions, redisearch.Suggestion{Term: fullMeasurementPath, Score: defaultScore}) + } + } + } + } + } + } + } + + log.Printf("generated %d suggestions. starting bulk insertion into dictionary '%s'.", len(suggestions), redisSearchDictName) + + // del ac suggestion + ac.Delete() + + err := ac.AddTerms(suggestions...) + if err != nil { + return fmt.Errorf("failed to add %d suggestions: %w", len(suggestions), err) + } + return nil +} + +func deleteAllHierarchySets(ctx context.Context, rdb *redis.Client) error { + log.Println("starting to collect all Redis Set keys for deletion...") + + keysToDelete := []string{ + gridKeysSet, + zoneKeysSet, + stationKeysSet, + componentNSPathKeysSet, + componentTagKeysSet, + configKeysSet, + measurementTagKeysSet, + } + + for S := 1; S <= 3; S++ { + keysToDelete = append(keysToDelete, fmt.Sprintf(gridZoneSetKeyFormat, S)) + + for Y := 1; Y <= 3; Y++ { + keysToDelete = append(keysToDelete, fmt.Sprintf(zoneStationSetKeyFormat, S, Y)) + + for Z := 1; Z <= 3; Z++ { + keysToDelete = append(keysToDelete, fmt.Sprintf(stationNSPathKeyFormat, S, Y, Z)) + + for D := 1; D <= 3; D++ { + keysToDelete = append(keysToDelete, fmt.Sprintf(nsPathCompTagKeyFormat, S, Y, Z, D)) + + for I := 1; I <= 3; I++ { + keysToDelete = append(keysToDelete, fmt.Sprintf(compTagMeasKeyFormat, S, Y, Z, D, I)) + } + } + } + } + } + + log.Printf("collected %d unique keys. Starting batch deletion...", len(keysToDelete)) + + deletedCount, err := rdb.Del(ctx, keysToDelete...).Result() + if err != nil { + return fmt.Errorf("batch deletion failed: %w", err) + } + + log.Printf("Successfully deleted %d keys (Sets) from Redis.", deletedCount) + return nil +} + +func main() { + rdb := redis.NewClient(&redis.Options{ + Addr: "localhost:6379", + Password: "", + DB: 0, + }) + + ctx := context.Background() + + if err := rdb.Ping(ctx).Err(); err != nil { + log.Fatalf("could not connect to Redis: %v", err) + } + log.Println("connected to Redis successfully") + + if err := deleteAllHierarchySets(ctx, rdb); err != nil { + log.Fatalf("error delete exist set before bulk insertion: %v", err) + } + + if err := BulkInsertAllHierarchySets(ctx, rdb); err != nil { + log.Fatalf("error during bulk insertion: %v", err) + } +}