@nsshunt/stsappframework 3.1.123 → 3.1.124

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -10,7 +10,7 @@ const stsutils_1 = require("@nsshunt/stsutils");
10
10
  const chalk_1 = __importDefault(require("chalk"));
11
11
  const uuid_1 = require("uuid");
12
12
  const testcontainers_1 = require("testcontainers");
13
- (0, vitest_1.describe)("Redis Message Handler Test", () => {
13
+ vitest_1.describe.skip("Redis Message Handler Test", () => {
14
14
  let ioRedisContainer;
15
15
  let ioRedisMessageProcessorUrl = '';
16
16
  (0, vitest_1.beforeAll)(async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"redisMessageHandler.test.js","sourceRoot":"","sources":["../src/redisMessageHandler.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"redisMessageHandler.test.js","sourceRoot":"","sources":["../src/redisMessageHandler.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,239 @@
1
+ "use strict";
2
+ /* eslint @typescript-eslint/no-explicit-any: 0 */ // --> OFF
3
+ /* eslint @typescript-eslint/no-unused-vars: 0 */ // --> OFF
4
+ var __importDefault = (this && this.__importDefault) || function (mod) {
5
+ return (mod && mod.__esModule) ? mod : { "default": mod };
6
+ };
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ const redis_1 = require("redis");
9
+ const crypto_1 = __importDefault(require("crypto"));
10
+ const chalk_1 = __importDefault(require("chalk"));
11
+ const indexName = `redistestindex01`;
12
+ const maxPromArrayRecords = 500;
13
+ const maxQueryLoops = 10000;
14
+ let minRecords = 0;
15
+ let maxRecords = 1000;
16
+ let mode = 0;
17
+ function getRandomNumber(max) {
18
+ const array = new Uint32Array(1);
19
+ crypto_1.default.webcrypto.getRandomValues(array);
20
+ return array[0] % max; // The % operator ensures the value is between 0 and 1000
21
+ }
22
+ function getRandomString(min, max) {
23
+ const charset = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
24
+ let result = '';
25
+ const length = min + getRandomNumber(max - min);
26
+ const values = new Uint32Array(length);
27
+ crypto_1.default.webcrypto.getRandomValues(values);
28
+ for (let i = 0; i < length; i++) {
29
+ result += charset[values[i] % charset.length];
30
+ }
31
+ return result;
32
+ }
33
+ const CreateIndex = async (redis) => {
34
+ try {
35
+ const retVal = await redis.ft.dropIndex(indexName);
36
+ console.log(retVal);
37
+ }
38
+ catch (error) {
39
+ console.log(chalk_1.default.red(error));
40
+ }
41
+ try {
42
+ const retVal = await redis.ft.create(indexName, {
43
+ 'orderno': { type: redis_1.SchemaFieldTypes.NUMERIC, SORTABLE: true },
44
+ //'orderdate': { type: SchemaFieldTypes.NUMERIC , SORTABLE: true },
45
+ //'notes': { type: SchemaFieldTypes.TEXT, NOINDEX: true },
46
+ 'notes': { type: redis_1.SchemaFieldTypes.TEXT },
47
+ 'field1': { type: redis_1.SchemaFieldTypes.TEXT }, // The fields need to be sortable to be used in group by aggregations
48
+ 'field2': { type: redis_1.SchemaFieldTypes.TEXT },
49
+ 'field3': { type: redis_1.SchemaFieldTypes.TEXT },
50
+ 'field4': { type: redis_1.SchemaFieldTypes.TEXT },
51
+ 'field5': { type: redis_1.SchemaFieldTypes.TEXT },
52
+ 'aggfield': { type: redis_1.SchemaFieldTypes.TEXT },
53
+ 'field1num': { type: redis_1.SchemaFieldTypes.NUMERIC }, // The fields need to be sortable to be used in group by aggregations
54
+ 'field2num': { type: redis_1.SchemaFieldTypes.NUMERIC },
55
+ 'field3num': { type: redis_1.SchemaFieldTypes.NUMERIC },
56
+ 'field4num': { type: redis_1.SchemaFieldTypes.NUMERIC },
57
+ 'field5num': { type: redis_1.SchemaFieldTypes.NUMERIC },
58
+ 'day': { type: redis_1.SchemaFieldTypes.NUMERIC, SORTABLE: true },
59
+ 'week': { type: redis_1.SchemaFieldTypes.NUMERIC, SORTABLE: true },
60
+ 'month': { type: redis_1.SchemaFieldTypes.NUMERIC, SORTABLE: true },
61
+ 'count': { type: redis_1.SchemaFieldTypes.NUMERIC, NOINDEX: true }
62
+ }, {
63
+ ON: 'HASH',
64
+ PREFIX: 'orders:'
65
+ });
66
+ console.log(retVal);
67
+ }
68
+ catch (error) {
69
+ console.log(chalk_1.default.red(error));
70
+ }
71
+ };
72
+ const BuildData = async (redis) => {
73
+ let promArray = [];
74
+ for (let i = minRecords; i < maxRecords; i++) {
75
+ const record = {
76
+ orderno: i,
77
+ orderdate: new Date().getTime(),
78
+ notes: `Notes for index ${i}`,
79
+ rndtextsmall: `${getRandomString(5, 20)}`,
80
+ rndtextmedium: `${getRandomString(20, 40)}`,
81
+ rndtextlarge: `${getRandomString(40, 80)}`,
82
+ field1: `${i % 10}`,
83
+ field2: `${i % 100}`,
84
+ field3: `${i % 1000}`,
85
+ field4: `${i % 10000}`,
86
+ field5: `${i % 100000}`,
87
+ aggfield: `${i % 10}_${i % 100}_${i % 1000}_${i % 10000}_${i % 100000}`,
88
+ field1num: i % 10,
89
+ field2num: i % 100,
90
+ field3num: i % 1000,
91
+ field4num: i % 10000,
92
+ field5num: i % 100000,
93
+ count: i,
94
+ day: (i % 365),
95
+ month: (i % 12),
96
+ week: (i % 52)
97
+ };
98
+ promArray.push(redis.HSET(`orders:${i}`, record));
99
+ if (promArray.length === maxPromArrayRecords) {
100
+ await Promise.all(promArray);
101
+ promArray = [];
102
+ console.log(i);
103
+ }
104
+ }
105
+ if (promArray.length > 0) {
106
+ await Promise.all(promArray);
107
+ promArray = [];
108
+ }
109
+ };
110
+ const SearchBy = async (redis, iterations, query, sort) => {
111
+ let getrandomstart;
112
+ let getrandomend;
113
+ let getrandomtotal = 0;
114
+ console.log(chalk_1.default.magenta(`Search By: [${query(0)}]`));
115
+ const start = performance.now();
116
+ for (let i = 0; i < iterations; i++) {
117
+ getrandomstart = performance.now();
118
+ const randomIndex = minRecords + getRandomNumber(maxRecords - minRecords);
119
+ getrandomend = performance.now();
120
+ getrandomtotal += (getrandomend - getrandomstart);
121
+ const queryOptions = {
122
+ RETURN: ['orderno', 'orderdate', 'notes', 'field1', 'field2', 'field3', 'field4', 'field5', 'aggfield'],
123
+ LIMIT: {
124
+ from: 0,
125
+ size: 100
126
+ }
127
+ };
128
+ if (sort) {
129
+ queryOptions.SORTBY = sort();
130
+ }
131
+ const retVal = await redis.ft.search(indexName, `${query(randomIndex)}`, queryOptions);
132
+ if (i % 1000 === 0) {
133
+ console.log(JSON.stringify(retVal));
134
+ }
135
+ }
136
+ const end = performance.now();
137
+ const diff = end - start;
138
+ console.log(chalk_1.default.green(`Total time to query: [${iterations}] times with [${maxRecords}] records total = [${diff}ms]`));
139
+ console.log(chalk_1.default.yellow(`Total time to generate random numbers: [${getrandomtotal}]`));
140
+ };
141
+ const Query = async (redis) => {
142
+ /*
143
+ await SearchBy(redis, maxQueryLoops, index => `@notes:index ${index}`);
144
+
145
+ await SearchBy(redis, maxQueryLoops, index => `@orderno:[${index} ${index + 5}]`, () => {
146
+ return {
147
+ BY: 'orderno',
148
+ DIRECTION: 'DESC'
149
+ }});
150
+
151
+ await SearchBy(redis, 1, index => `@notes:index 1900000*`, () => {
152
+ return {
153
+ BY: 'orderno',
154
+ DIRECTION: 'DESC'
155
+ }});
156
+
157
+ await SearchBy(redis, maxQueryLoops, index => `@field1:1 @field2:41 @field3:941 @field4:9941 @field5:19941 @orderno:[919941 919941]`);
158
+ //await SearchBy(redis, maxQueryLoops, index => `@orderno:919941`);
159
+
160
+ await SearchBy(redis, maxQueryLoops, index => `@aggfield:1_41_941_9941_19941 @orderno:[919941 919941]`);
161
+
162
+
163
+ */
164
+ /*
165
+ for (let i=0; i < fieldList.length; i++) {
166
+ if (fieldList[i].dataType.localeCompare('JSON') === 0) {
167
+ aggregateList.push({ type: AggregateGroupByReducers.FIRST_VALUE, property: `@${fieldList[i].fieldName}`, AS: fieldList[i].fieldName });
168
+ } else {
169
+ aggregateList.push({ type: AggregateGroupByReducers.SUM, property: `@${fieldList[i].fieldName}`, AS: fieldList[i].fieldName });
170
+ }
171
+ }
172
+ */
173
+ const retVal = await redis.ft.aggregate(indexName, "*", {
174
+ STEPS: [
175
+ {
176
+ type: redis_1.AggregateSteps.GROUPBY,
177
+ properties: [`@field1num`, `@field2num`],
178
+ REDUCE: [
179
+ {
180
+ type: redis_1.AggregateGroupByReducers.COUNT_DISTINCT,
181
+ property: '@count',
182
+ AS: 'My_Count'
183
+ },
184
+ ]
185
+ },
186
+ {
187
+ type: redis_1.AggregateSteps.SORTBY,
188
+ BY: [
189
+ {
190
+ BY: '@field1num',
191
+ DIRECTION: 'ASC'
192
+ },
193
+ {
194
+ BY: '@field2num',
195
+ DIRECTION: 'ASC'
196
+ }
197
+ ]
198
+ },
199
+ {
200
+ type: redis_1.AggregateSteps.LIMIT,
201
+ from: 0,
202
+ size: 5
203
+ }
204
+ ]
205
+ });
206
+ console.log(retVal);
207
+ };
208
+ const RunThis = async () => {
209
+ //const redis = await createClient({url: goptions.imRedisMessageProcessorUrl })
210
+ const redis = await (0, redis_1.createClient)()
211
+ .on('error', error => console.log(chalk_1.default.red(error)))
212
+ .connect();
213
+ switch (mode) {
214
+ case 0:
215
+ await CreateIndex(redis);
216
+ break;
217
+ case 1:
218
+ await BuildData(redis);
219
+ break;
220
+ case 2:
221
+ await Query(redis);
222
+ break;
223
+ }
224
+ //redis.quit();
225
+ redis.disconnect();
226
+ console.log(`Done....`);
227
+ };
228
+ const args = process.argv.slice(2);
229
+ if (args.length !== 3) {
230
+ console.log('needs mode, min and max on command line. mode = 0 - create new index, 1 - build entries, 2 - query only');
231
+ console.log(args);
232
+ }
233
+ else {
234
+ mode = parseInt(args[0]);
235
+ minRecords = parseInt(args[1]);
236
+ maxRecords = parseInt(args[2]);
237
+ RunThis();
238
+ }
239
+ //# sourceMappingURL=appredistest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"appredistest.js","sourceRoot":"","sources":["../../src/testing/appredistest.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ /* eslint @typescript-eslint/no-explicit-any: 0 */ // --> OFF
3
+ /* eslint @typescript-eslint/no-unused-vars: 0 */ // --> OFF
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ /*
6
+ const someFunc = (val: number, ecb: (message: any) => void): Promise<number> => {
7
+ return new Promise(async (resolve, reject) => {
8
+ const rannum = crypto.randomInt(5000);
9
+ console.log(`processing: [${val}] Waiting: [${rannum}]`)
10
+ await Sleep(rannum);
11
+ console.log(`processing: Completed ...`)
12
+ if (val === 3) {
13
+ //ecb(val);
14
+ //resolve(val);
15
+ reject(val);
16
+ } else {
17
+ resolve(val);
18
+ }
19
+ });
20
+ }
21
+ */
22
+ /*
23
+ (async () => {
24
+ for (let i=0; i < 10; i++) {
25
+ promArray.push(someFunc(i));
26
+ }
27
+ const retVal = await Promise.all(promArray).catch((reason) => {
28
+ console.log(`catch error: [${reason}]`);
29
+ });
30
+ console.log(`Results: [${retVal}]`);
31
+ })();
32
+ */
33
+ /*
34
+ (async () => {
35
+ const promArray: Promise<number>[] = [ ];
36
+ for (let i=0; i < 10; i++) {
37
+ promArray.push(someFunc(i, (error) => {
38
+ console.log(`ERROR CallBack: [${error}]`);
39
+ }));
40
+ }
41
+ try {
42
+ const retVal = await Promise.all(promArray);
43
+ console.log(`Results: [${retVal}]`);
44
+ console.log('Work Continues ...');
45
+ } catch (error) {
46
+ console.log(`ERROR: [${error}]`);
47
+ }
48
+ })();
49
+ */
50
+ //# sourceMappingURL=promiseTesting.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promiseTesting.js","sourceRoot":"","sources":["../../src/testing/promiseTesting.ts"],"names":[],"mappings":";AAAA,kDAAkD,CAAE,UAAU;AAC9D,iDAAiD,CAAE,UAAU;;AAK7D;;;;;;;;;;;;;;;;EAgBE;AAEF;;;;;;;;;;EAUE;AAEF;;;;;;;;;;;;;;;;EAgBE"}
@@ -0,0 +1,2 @@
1
+ save ""
2
+ appendonly no
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nsshunt/stsappframework",
3
- "version": "3.1.123",
3
+ "version": "3.1.124",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "./types/index.d.ts",
@@ -25,8 +25,8 @@
25
25
  },
26
26
  "homepage": "https://github.com/nsshunt/stsappframework#readme",
27
27
  "devDependencies": {
28
- "@babel/preset-env": "^7.24.5",
29
- "@babel/preset-typescript": "^7.24.1",
28
+ "@babel/preset-env": "^7.24.7",
29
+ "@babel/preset-typescript": "^7.24.7",
30
30
  "@tsconfig/node20": "^20.1.4",
31
31
  "@types/cookie-parser": "^1.4.7",
32
32
  "@types/debug": "^4.1.12",
@@ -34,13 +34,13 @@
34
34
  "@types/jest": "^29.5.12",
35
35
  "@types/jsonwebtoken": "^9.0.6",
36
36
  "@types/uuid": "^9.0.8",
37
- "@typescript-eslint/eslint-plugin": "^7.9.0",
38
- "@typescript-eslint/parser": "^7.9.0",
37
+ "@typescript-eslint/eslint-plugin": "^7.12.0",
38
+ "@typescript-eslint/parser": "^7.12.0",
39
39
  "eslint": "^8.57.0",
40
40
  "jest": "^29.7.0",
41
41
  "testcontainers": "^10.9.0",
42
42
  "typescript": "^5.4.5",
43
- "vite": "^5.2.11",
43
+ "vite": "^5.2.13",
44
44
  "vitest": "^1.6.0"
45
45
  },
46
46
  "dependencies": {
@@ -48,20 +48,20 @@
48
48
  "@grpc/proto-loader": "^0.7.13",
49
49
  "@influxdata/influxdb-client": "^1.33.2",
50
50
  "@influxdata/influxdb-client-apis": "^1.33.2",
51
- "@nsshunt/stsconfig": "^1.25.131",
52
- "@nsshunt/stsdatamanagement": "^1.18.42",
53
- "@nsshunt/stsobservability": "^1.0.29",
54
- "@nsshunt/stsutils": "^1.16.60",
51
+ "@nsshunt/stsconfig": "^1.25.132",
52
+ "@nsshunt/stsdatamanagement": "^1.18.59",
53
+ "@nsshunt/stsobservability": "^1.0.30",
54
+ "@nsshunt/stsutils": "^1.16.61",
55
55
  "@socket.io/cluster-adapter": "^0.2.2",
56
56
  "@socket.io/redis-streams-adapter": "^0.2.2",
57
57
  "@types/on-headers": "^1.0.3",
58
58
  "@types/pidusage": "^2.0.5",
59
59
  "@types/tough-cookie": "^4.0.5",
60
- "axios": "^1.6.8",
60
+ "axios": "^1.7.2",
61
61
  "chalk": "^4.1.2",
62
62
  "cookie-parser": "^1.4.6",
63
63
  "cors": "^2.8.5",
64
- "debug": "^4.3.4",
64
+ "debug": "^4.3.5",
65
65
  "express": "^4.19.1",
66
66
  "http-status-codes": "^2.3.0",
67
67
  "jayson": "^4.1.0",
@@ -72,11 +72,11 @@
72
72
  "on-headers": "^1.0.2",
73
73
  "pidusage": "^3.0.2",
74
74
  "prom-client": "^15.1.2",
75
- "redis": "^4.6.13",
75
+ "redis": "^4.6.14",
76
76
  "socket.io": "^4.7.5",
77
77
  "socket.io-client": "^4.7.5",
78
78
  "supports-color": "^9.4.0",
79
- "systeminformation": "^5.22.9",
79
+ "systeminformation": "^5.22.10",
80
80
  "tiny-emitter": "^2.1.0",
81
81
  "tough-cookie": "^4.1.4",
82
82
  "uuid": "^9.0.1",
package/runpromise.sh ADDED
@@ -0,0 +1,5 @@
1
+ #!/bin/sh
2
+ # openssl req -nodes -new -x509 -keyout server.key -out server.cert
3
+ clear; \
4
+ node dist/testing/promiseTesting.js
5
+
package/runredis.sh ADDED
@@ -0,0 +1,5 @@
1
+ #!/bin/sh
2
+ # openssl req -nodes -new -x509 -keyout server.key -out server.cert
3
+ clear; \
4
+ node dist/testing/appredistest.js $1 $2
5
+
package/runredis1.sh ADDED
@@ -0,0 +1,4 @@
1
+ #!/bin/bash
2
+ # openssl req -nodes -new -x509 -keyout server.key -out server.cert
3
+ clear
4
+ node dist/testing/appredistest.js 0 0 1000
package/runredis2.sh ADDED
@@ -0,0 +1,24 @@
1
+ #!/bin/bash
2
+ # openssl req -nodes -new -x509 -keyout server.key -out server.cert
3
+ clear
4
+ node dist/testing/appredistest.js 1 0 1000000
5
+ #node dist/testing/appredistest.js 1 0 1000000 &
6
+ #node dist/testing/appredistest.js 1 1000000 2000000 &
7
+ #node dist/testing/appredistest.js 1 2000000 3000000 &
8
+ #node dist/testing/appredistest.js 1 3000000 4000000 &
9
+ #node dist/testing/appredistest.js 1 4000000 5000000 &
10
+ #node dist/testing/appredistest.js 1 5000000 6000000 &
11
+ #node dist/testing/appredistest.js 1 6000000 7000000 &
12
+ #node dist/testing/appredistest.js 1 7000000 8000000 &
13
+ #node dist/testing/appredistest.js 1 8000000 9000000 &
14
+ #node dist/testing/appredistest.js 1 9000000 10000000 &
15
+ #node dist/testing/appredistest.js 1 10000000 11000000 &
16
+ #node dist/testing/appredistest.js 1 11000000 12000000 &
17
+ #node dist/testing/appredistest.js 1 12000000 13000000 &
18
+ #node dist/testing/appredistest.js 1 13000000 14000000 &
19
+ #node dist/testing/appredistest.js 1 14000000 15000000 &
20
+ #node dist/testing/appredistest.js 1 15000000 16000000 &
21
+ #node dist/testing/appredistest.js 1 16000000 17000000 &
22
+ #node dist/testing/appredistest.js 1 17000000 18000000 &
23
+ #node dist/testing/appredistest.js 1 18000000 19000000 &
24
+ #node dist/testing/appredistest.js 1 19000000 20000000 &
package/runredis3.sh ADDED
@@ -0,0 +1,4 @@
1
+ #!/bin/bash
2
+ # openssl req -nodes -new -x509 -keyout server.key -out server.cert
3
+ clear
4
+ node dist/testing/appredistest.js 2 0 1000000
@@ -11,7 +11,7 @@ import { v4 as uuidv4 } from 'uuid';
11
11
 
12
12
  import { GenericContainer } from "testcontainers";
13
13
 
14
- describe("Redis Message Handler Test", () =>
14
+ describe.skip("Redis Message Handler Test", () =>
15
15
  {
16
16
  let ioRedisContainer: any;
17
17
  let ioRedisMessageProcessorUrl = '';
@@ -0,0 +1,303 @@
1
+ /* eslint @typescript-eslint/no-explicit-any: 0 */ // --> OFF
2
+ /* eslint @typescript-eslint/no-unused-vars: 0 */ // --> OFF
3
+
4
+ // Start stack server w/out persistence
5
+ //
6
+ // docker stop redis-stack-server
7
+ // docker rm redis-stack-server
8
+ // docker run -d --name redis-stack-server -p 6379:6379 -e REDIS_ARGS="--save \"\"" -e REDIS_ARGS="--appendonly no" redis/redis-stack-server:latest
9
+ //
10
+ // docker stop redis-stack-server; docker rm redis-stack-server; docker run -d --name redis-stack-server -v `pwd`/local-redis-stack.conf:/redis-stack.conf -p 6379:6379 redis/redis-stack-server:latest
11
+
12
+ // get the config
13
+
14
+ // FT.SEARCH idx3 "@eventtime:[-inf 18288]" SORTBY eventtime LIMIT 0 3
15
+ // FT.AGGREGATE idx:rawDataHash "@duration:[-inf 10]" GROUPBY 1 @level2 REDUCE COUNT 0 AS 'B10'
16
+ // FT.AGGREGATE idx:rawDataHash "@duration:[-inf 10]" GROUPBY 1 @level4 REDUCE COUNT 0 AS 'B10' SORTBY 1 @level4 LIMIT 0 50
17
+ // For the normal counts and averages
18
+ // FT.AGGREGATE idx:rawDataHash2 "*" GROUPBY 1 @level2 REDUCE SUM 1 @coreCount REDUCE SUM 1 @duration REDUCE SUM 1 @latency REDUCE SUM 1 @cpu
19
+ // FT.AGGREGATE idx:rawDataHash2 '@level2:stsauth' GROUPBY 1 @level2 REDUCE SUM 1 @coreCount REDUCE SUM 1 @duration REDUCE SUM 1 @latency REDUCE SUM 1 @cpu
20
+ // FT.AGGREGATE idx:lambdaIndexInstant GROUPBY 1 @level2 REDUCE SUM 1 @coreCount REDUCE SUM 1 @duration REDUCE SUM 1 @latency REDUCE SUM 1 @cpu
21
+ // FT.SEARCH idx:lambdaIndexInstant LIMIT 0 3
22
+
23
+ // FT.SEARCH redistestindex01 "*"
24
+ // FT.AGGREGATE redistestindex01 "*" GROUPBY 0 REDUCE SUM 1 @count AS 'The_Count'
25
+ // FT.AGGREGATE redistestindex01 "*" GROUPBY 2 @month @week REDUCE SUM 1 @count AS 'The_Count' SORTBY 4 @month ASC @week ASC
26
+ // FT.SEARCH redistestindex01 "*"
27
+ // FT.AGGREGATE redistestindex01 "*" GROUPBY 3 @field1 @field2 @field3 REDUCE COUNT 0 AS 'The_Count' SORTBY 6 @field1 ASC @field2 ASC @field3 ASC
28
+
29
+ // FT.SEARCH redistestindex01 "@field1:1 @field2:1 @field3:1 @field4:1 @field5:1" LIMIT 1 1
30
+ // FT.AGGREGATE redistestindex01 "@field1:1" GROUPBY 3 @field1 @field2 @field3 REDUCE COUNT 0 AS 'The_Count' SORTBY 6 @field1 ASC @field2 ASC @field3 ASC
31
+ // FT.AGGREGATE redistestindex01 "@field1:1 @field2:1 @field3:1" GROUPBY 3 @field1 @field2 @field3 REDUCE COUNT 0 AS 'The_Count' SORTBY 6 @field1 ASC @field2 ASC @field3 ASC
32
+
33
+ // Settings
34
+ // --------
35
+ // Below appears to fix slow queries
36
+ // FT.CONFIG SET TIMEOUT 0
37
+ //
38
+ // FT.CONFIG SET MAXSEARCHRESULTS 1000000
39
+ // FT.CONFIG SET MAXAGGREGATERESULTS 1000000
40
+
41
+ import { } from 'redis';
42
+ import { SchemaFieldTypes, createClient, RedisClientType, AggregateSteps, AggregateGroupByReducers } from 'redis';
43
+ import crypto from 'crypto';
44
+
45
+ import chalk from 'chalk';
46
+ import { JSONObject } from '@nsshunt/stsutils';
47
+
48
+ const indexName = `redistestindex01`;
49
+ const maxPromArrayRecords = 500;
50
+ const maxQueryLoops = 10000;
51
+
52
+ let minRecords = 0;
53
+ let maxRecords = 1000;
54
+ let mode = 0;
55
+
56
+ function getRandomNumber(max: number) {
57
+ const array = new Uint32Array(1);
58
+ crypto.webcrypto.getRandomValues(array);
59
+ return array[0] % max; // The % operator ensures the value is between 0 and 1000
60
+ }
61
+
62
+ function getRandomString(min: number, max: number) {
63
+ const charset = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
64
+ let result = '';
65
+ const length = min + getRandomNumber(max-min);
66
+ const values = new Uint32Array(length);
67
+ crypto.webcrypto.getRandomValues(values);
68
+ for (let i = 0; i < length; i++) {
69
+ result += charset[values[i] % charset.length];
70
+ }
71
+ return result;
72
+ }
73
+
74
+ const CreateIndex = async (redis: RedisClientType) => {
75
+ try {
76
+ const retVal = await redis.ft.dropIndex(indexName);
77
+ console.log(retVal);
78
+ } catch (error) {
79
+ console.log(chalk.red(error))
80
+ }
81
+
82
+ try {
83
+ const retVal = await redis.ft.create(indexName, { // serviceIndexInstant
84
+ 'orderno': { type: SchemaFieldTypes.NUMERIC, SORTABLE: true },
85
+ //'orderdate': { type: SchemaFieldTypes.NUMERIC , SORTABLE: true },
86
+ //'notes': { type: SchemaFieldTypes.TEXT, NOINDEX: true },
87
+ 'notes': { type: SchemaFieldTypes.TEXT },
88
+ 'field1': { type: SchemaFieldTypes.TEXT }, // The fields need to be sortable to be used in group by aggregations
89
+ 'field2': { type: SchemaFieldTypes.TEXT },
90
+ 'field3': { type: SchemaFieldTypes.TEXT },
91
+ 'field4': { type: SchemaFieldTypes.TEXT },
92
+ 'field5': { type: SchemaFieldTypes.TEXT },
93
+ 'aggfield': { type: SchemaFieldTypes.TEXT },
94
+ 'field1num': { type: SchemaFieldTypes.NUMERIC }, // The fields need to be sortable to be used in group by aggregations
95
+ 'field2num': { type: SchemaFieldTypes.NUMERIC },
96
+ 'field3num': { type: SchemaFieldTypes.NUMERIC },
97
+ 'field4num': { type: SchemaFieldTypes.NUMERIC },
98
+ 'field5num': { type: SchemaFieldTypes.NUMERIC },
99
+ 'day': { type: SchemaFieldTypes.NUMERIC, SORTABLE: true },
100
+ 'week': { type: SchemaFieldTypes.NUMERIC, SORTABLE: true },
101
+ 'month': { type: SchemaFieldTypes.NUMERIC, SORTABLE: true },
102
+ 'count': { type: SchemaFieldTypes.NUMERIC, NOINDEX: true }
103
+ }, {
104
+ ON: 'HASH',
105
+ PREFIX: 'orders:'
106
+ });
107
+ console.log(retVal);
108
+ } catch (error) {
109
+ console.log(chalk.red(error))
110
+ }
111
+ }
112
+
113
+ const BuildData = async (redis: RedisClientType) => {
114
+
115
+ let promArray: Promise<any>[] = [ ];
116
+
117
+ for (let i=minRecords; i < maxRecords; i++) {
118
+
119
+ const record = {
120
+ orderno: i,
121
+ orderdate: new Date().getTime(),
122
+ notes: `Notes for index ${i}`,
123
+ rndtextsmall: `${getRandomString(5, 20)}`,
124
+ rndtextmedium: `${getRandomString(20, 40)}`,
125
+ rndtextlarge: `${getRandomString(40, 80)}`,
126
+ field1: `${i % 10}`,
127
+ field2: `${i % 100}`,
128
+ field3: `${i % 1000}`,
129
+ field4: `${i % 10000}`,
130
+ field5: `${i % 100000}`,
131
+ aggfield: `${i % 10}_${i % 100}_${i % 1000}_${i % 10000}_${i % 100000}`,
132
+ field1num: i % 10,
133
+ field2num: i % 100,
134
+ field3num: i % 1000,
135
+ field4num: i % 10000,
136
+ field5num: i % 100000,
137
+ count: i,
138
+ day: (i % 365),
139
+ month: (i % 12),
140
+ week: (i % 52)
141
+ } as any;
142
+
143
+ promArray.push(redis.HSET(`orders:${i}`, record));
144
+
145
+ if (promArray.length === maxPromArrayRecords) {
146
+ await Promise.all(promArray);
147
+ promArray = [ ];
148
+ console.log(i);
149
+ }
150
+ }
151
+
152
+ if (promArray.length > 0) {
153
+ await Promise.all(promArray);
154
+ promArray = [ ];
155
+ }
156
+ }
157
+
158
+ const SearchBy = async (redis: RedisClientType, iterations: number, query: (index: number) => string, sort?: () => JSONObject) => {
159
+ let getrandomstart;
160
+ let getrandomend;
161
+ let getrandomtotal = 0;
162
+
163
+ console.log(chalk.magenta(`Search By: [${query(0)}]`));
164
+
165
+ const start = performance.now();
166
+ for (let i=0; i < iterations; i++) {
167
+
168
+ getrandomstart = performance.now();
169
+ const randomIndex = minRecords + getRandomNumber(maxRecords - minRecords);
170
+ getrandomend = performance.now();
171
+ getrandomtotal += (getrandomend - getrandomstart);
172
+
173
+ const queryOptions = {
174
+ RETURN: [ 'orderno', 'orderdate', 'notes', 'field1', 'field2', 'field3', 'field4', 'field5', 'aggfield' ],
175
+ LIMIT: {
176
+ from: 0,
177
+ size: 100
178
+ }
179
+ } as any;
180
+
181
+ if (sort) {
182
+ queryOptions.SORTBY = sort();
183
+ }
184
+
185
+ const retVal = await redis.ft.search(indexName, `${query(randomIndex)}`, queryOptions);
186
+
187
+ if (i % 1000 === 0) {
188
+ console.log(JSON.stringify(retVal));
189
+ }
190
+ }
191
+ const end = performance.now();
192
+ const diff = end - start;
193
+ console.log(chalk.green(`Total time to query: [${iterations}] times with [${maxRecords}] records total = [${diff}ms]`));
194
+ console.log(chalk.yellow(`Total time to generate random numbers: [${getrandomtotal}]`));
195
+ }
196
+
197
+ const Query = async (redis: RedisClientType) => {
198
+ /*
199
+ await SearchBy(redis, maxQueryLoops, index => `@notes:index ${index}`);
200
+
201
+ await SearchBy(redis, maxQueryLoops, index => `@orderno:[${index} ${index + 5}]`, () => {
202
+ return {
203
+ BY: 'orderno',
204
+ DIRECTION: 'DESC'
205
+ }});
206
+
207
+ await SearchBy(redis, 1, index => `@notes:index 1900000*`, () => {
208
+ return {
209
+ BY: 'orderno',
210
+ DIRECTION: 'DESC'
211
+ }});
212
+
213
+ await SearchBy(redis, maxQueryLoops, index => `@field1:1 @field2:41 @field3:941 @field4:9941 @field5:19941 @orderno:[919941 919941]`);
214
+ //await SearchBy(redis, maxQueryLoops, index => `@orderno:919941`);
215
+
216
+ await SearchBy(redis, maxQueryLoops, index => `@aggfield:1_41_941_9941_19941 @orderno:[919941 919941]`);
217
+
218
+
219
+ */
220
+
221
+
222
+ /*
223
+ for (let i=0; i < fieldList.length; i++) {
224
+ if (fieldList[i].dataType.localeCompare('JSON') === 0) {
225
+ aggregateList.push({ type: AggregateGroupByReducers.FIRST_VALUE, property: `@${fieldList[i].fieldName}`, AS: fieldList[i].fieldName });
226
+ } else {
227
+ aggregateList.push({ type: AggregateGroupByReducers.SUM, property: `@${fieldList[i].fieldName}`, AS: fieldList[i].fieldName });
228
+ }
229
+ }
230
+ */
231
+
232
+ const retVal = await redis.ft.aggregate(indexName, "*", {
233
+ STEPS: [
234
+ {
235
+ type: AggregateSteps.GROUPBY,
236
+ properties: [`@field1num`, `@field2num`],
237
+ REDUCE: [
238
+ {
239
+ type: AggregateGroupByReducers.COUNT_DISTINCT,
240
+ property: '@count',
241
+ AS: 'My_Count'
242
+ },
243
+ ]
244
+ },
245
+ {
246
+ type: AggregateSteps.SORTBY,
247
+ BY: [
248
+ {
249
+ BY: '@field1num',
250
+ DIRECTION: 'ASC'
251
+ },
252
+ {
253
+ BY: '@field2num',
254
+ DIRECTION: 'ASC'
255
+ }
256
+ ]
257
+ },
258
+ {
259
+ type: AggregateSteps.LIMIT,
260
+ from: 0,
261
+ size: 5
262
+ }
263
+ ]
264
+ });
265
+ console.log(retVal);
266
+ }
267
+
268
+ const RunThis = async () => {
269
+
270
+ //const redis = await createClient({url: goptions.imRedisMessageProcessorUrl })
271
+ const redis: RedisClientType = await createClient()
272
+ .on('error', error => console.log(chalk.red(error)))
273
+ .connect() as any
274
+
275
+ switch (mode) {
276
+ case 0 :
277
+ await CreateIndex(redis);
278
+ break;
279
+ case 1 :
280
+ await BuildData(redis);
281
+ break;
282
+ case 2 :
283
+ await Query(redis);
284
+ break;
285
+ }
286
+
287
+ //redis.quit();
288
+ redis.disconnect();
289
+
290
+ console.log(`Done....`);
291
+ }
292
+
293
+ const args = process.argv.slice(2);
294
+
295
+ if (args.length !== 3) {
296
+ console.log('needs mode, min and max on command line. mode = 0 - create new index, 1 - build entries, 2 - query only')
297
+ console.log(args);
298
+ } else {
299
+ mode = parseInt(args[0]);
300
+ minRecords = parseInt(args[1]);
301
+ maxRecords = parseInt(args[2]);
302
+ RunThis();
303
+ }
@@ -0,0 +1,53 @@
1
+ /* eslint @typescript-eslint/no-explicit-any: 0 */ // --> OFF
2
+ /* eslint @typescript-eslint/no-unused-vars: 0 */ // --> OFF
3
+
4
+ import { Sleep } from "@nsshunt/stsutils";
5
+ import crypto from 'crypto';
6
+
7
+ /*
8
+ const someFunc = (val: number, ecb: (message: any) => void): Promise<number> => {
9
+ return new Promise(async (resolve, reject) => {
10
+ const rannum = crypto.randomInt(5000);
11
+ console.log(`processing: [${val}] Waiting: [${rannum}]`)
12
+ await Sleep(rannum);
13
+ console.log(`processing: Completed ...`)
14
+ if (val === 3) {
15
+ //ecb(val);
16
+ //resolve(val);
17
+ reject(val);
18
+ } else {
19
+ resolve(val);
20
+ }
21
+ });
22
+ }
23
+ */
24
+
25
+ /*
26
+ (async () => {
27
+ for (let i=0; i < 10; i++) {
28
+ promArray.push(someFunc(i));
29
+ }
30
+ const retVal = await Promise.all(promArray).catch((reason) => {
31
+ console.log(`catch error: [${reason}]`);
32
+ });
33
+ console.log(`Results: [${retVal}]`);
34
+ })();
35
+ */
36
+
37
+ /*
38
+ (async () => {
39
+ const promArray: Promise<number>[] = [ ];
40
+ for (let i=0; i < 10; i++) {
41
+ promArray.push(someFunc(i, (error) => {
42
+ console.log(`ERROR CallBack: [${error}]`);
43
+ }));
44
+ }
45
+ try {
46
+ const retVal = await Promise.all(promArray);
47
+ console.log(`Results: [${retVal}]`);
48
+ console.log('Work Continues ...');
49
+ } catch (error) {
50
+ console.log(`ERROR: [${error}]`);
51
+ }
52
+ })();
53
+ */
@@ -0,0 +1,4 @@
1
+
2
+
3
+ export {};
4
+ //# sourceMappingURL=appredistest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"appredistest.d.ts","sourceRoot":"","sources":["../../src/testing/appredistest.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+
2
+
3
+ export {};
4
+ //# sourceMappingURL=promiseTesting.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promiseTesting.d.ts","sourceRoot":"","sources":["../../src/testing/promiseTesting.ts"],"names":[],"mappings":""}