bonsaif 1.10.29 → 1.10.31
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.
- package/lib/hookup/redis.js +115 -5
- package/package.json +1 -1
package/lib/hookup/redis.js
CHANGED
|
@@ -252,6 +252,36 @@ const smembers=async( options, db, key, toJson )=>{ // SMEMBERS key
|
|
|
252
252
|
})
|
|
253
253
|
}
|
|
254
254
|
|
|
255
|
+
const sinter=async(options, db, keys)=>{ // SINTER key [key ...]
|
|
256
|
+
const exec = require("./exec");
|
|
257
|
+
const redisConn = await exec.redisConn(options);
|
|
258
|
+
const start = Date.now();
|
|
259
|
+
|
|
260
|
+
// Asegurarse de que keys sea un array
|
|
261
|
+
if (!Array.isArray(keys)) {
|
|
262
|
+
keys = [keys];
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
return new Promise((resolve, reject)=>{
|
|
266
|
+
try{
|
|
267
|
+
redisConn.select(db,function() { /* ... */ }); //base 1
|
|
268
|
+
redisConn.sinter(keys, function (err, res) {
|
|
269
|
+
const end = Date.now();
|
|
270
|
+
const time = end - start;
|
|
271
|
+
|
|
272
|
+
resolve({"sinter":keys, "err":err, "res":res, "time":utl.milisegundosASegundos(time)});
|
|
273
|
+
try{
|
|
274
|
+
exec.redisClose(redisConn);
|
|
275
|
+
}catch(e){
|
|
276
|
+
utl.log('err.sinter '+e);
|
|
277
|
+
}
|
|
278
|
+
});
|
|
279
|
+
}catch(e){
|
|
280
|
+
utl.log('err sinter'+e);
|
|
281
|
+
}
|
|
282
|
+
})
|
|
283
|
+
}
|
|
284
|
+
|
|
255
285
|
const scard=async( options, db, key )=>{ // SCARD key
|
|
256
286
|
const exec = require("./exec");
|
|
257
287
|
const redisConn = await exec.redisConn(options);
|
|
@@ -277,6 +307,37 @@ const scard=async( options, db, key )=>{ // SCARD key
|
|
|
277
307
|
})
|
|
278
308
|
}
|
|
279
309
|
|
|
310
|
+
const sunionstore=async( options, db, destination, keys )=>{ // SUNIONSTORE destination key [key ...]
|
|
311
|
+
const exec = require("./exec");
|
|
312
|
+
const redisConn = await exec.redisConn(options);
|
|
313
|
+
const start = Date.now();
|
|
314
|
+
|
|
315
|
+
// Asegurarse de que keys sea un array
|
|
316
|
+
if (!Array.isArray(keys)) {
|
|
317
|
+
keys = [keys];
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
return new Promise((resolve, reject)=>{
|
|
321
|
+
try{
|
|
322
|
+
redisConn.select(db,function() { /* ... */ }); //base 1
|
|
323
|
+
redisConn.sunionstore([destination, ...keys], function (err, res) {
|
|
324
|
+
|
|
325
|
+
const end = Date.now();
|
|
326
|
+
const time = end - start;
|
|
327
|
+
|
|
328
|
+
resolve({"sunionstore":destination, "keys":keys, "err":err, "res":res, "time":utl.milisegundosASegundos(time)});
|
|
329
|
+
try{
|
|
330
|
+
exec.redisClose(redisConn);
|
|
331
|
+
}catch(e){
|
|
332
|
+
utl.log('err.sunionstore '+e);
|
|
333
|
+
}
|
|
334
|
+
});
|
|
335
|
+
}catch(e){
|
|
336
|
+
utl.log('err sunionstore'+e);
|
|
337
|
+
}
|
|
338
|
+
})
|
|
339
|
+
}
|
|
340
|
+
|
|
280
341
|
const hset=async( options,db, key, values )=>{ // HSET key field value [ field value ...]
|
|
281
342
|
const exec = require("./exec");
|
|
282
343
|
const redisConn = await exec.redisConn(options);
|
|
@@ -308,7 +369,7 @@ const hset=async( options,db, key, values )=>{ // HSET key field value [ field
|
|
|
308
369
|
})
|
|
309
370
|
}
|
|
310
371
|
|
|
311
|
-
const hgetall=async(options, db, key )=>{ //
|
|
372
|
+
const hgetall=async(options, db, key )=>{ // HGETALL key
|
|
312
373
|
const exec = require("./exec");
|
|
313
374
|
const redisConn = await exec.redisConn(options);
|
|
314
375
|
const start = Date.now();
|
|
@@ -331,6 +392,44 @@ const hgetall=async(options, db, key )=>{ // SMEMBERS key
|
|
|
331
392
|
})
|
|
332
393
|
}
|
|
333
394
|
|
|
395
|
+
const hmget=async(options, db, key, fields )=>{ // HMGET key field [field ...]
|
|
396
|
+
const exec = require("./exec");
|
|
397
|
+
const redisConn = await exec.redisConn(options);
|
|
398
|
+
const start = Date.now();
|
|
399
|
+
|
|
400
|
+
// Asegurarse de que fields sea un array
|
|
401
|
+
if (!Array.isArray(fields)) {
|
|
402
|
+
fields = [fields];
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
return new Promise((resolve, reject)=>{
|
|
406
|
+
try{
|
|
407
|
+
redisConn.select(db,function() { /* ... */ }); //base 1
|
|
408
|
+
redisConn.hmget(key, fields, function (err, res) {
|
|
409
|
+
const end = Date.now();
|
|
410
|
+
const time = end - start;
|
|
411
|
+
|
|
412
|
+
// Crear un objeto con los campos y valores
|
|
413
|
+
let result = {};
|
|
414
|
+
if (res) {
|
|
415
|
+
fields.forEach((field, index) => {
|
|
416
|
+
result[field] = res[index];
|
|
417
|
+
});
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
resolve({"hmget":key, "fields":fields, "err":err, "res":result, "time":utl.milisegundosASegundos(time)});
|
|
421
|
+
try{
|
|
422
|
+
exec.redisClose(redisConn);
|
|
423
|
+
}catch(e){
|
|
424
|
+
utl.log('err.hmget '+e);
|
|
425
|
+
}
|
|
426
|
+
});
|
|
427
|
+
}catch(e){
|
|
428
|
+
utl.log('err hmget'+e);
|
|
429
|
+
}
|
|
430
|
+
})
|
|
431
|
+
}
|
|
432
|
+
|
|
334
433
|
const del=async( options,db, key )=>{ //DEL key [key ...]
|
|
335
434
|
const exec = require("./exec");
|
|
336
435
|
const redisConn = await exec.redisConn(options);
|
|
@@ -570,7 +669,7 @@ const hmset=async( options,db, key, values )=>{ // HSET key field value [ field
|
|
|
570
669
|
}
|
|
571
670
|
|
|
572
671
|
|
|
573
|
-
const
|
|
672
|
+
const expire=async( options,db, key, expire )=>{ // EXPIRE key seconds
|
|
574
673
|
const exec = require("./exec");
|
|
575
674
|
const redisConn = await exec.redisConn(options);
|
|
576
675
|
const start = Date.now();
|
|
@@ -579,7 +678,6 @@ const expire_=async( options,db, key, expire )=>{ // HSET key field value [ fie
|
|
|
579
678
|
return new Promise((resolve, reject)=>{
|
|
580
679
|
try{
|
|
581
680
|
redisConn.select(db,function() { /* ... */ }); //base 1
|
|
582
|
-
// hset con multiples campos esta depreciado en versiones mayores a node 6
|
|
583
681
|
redisConn.expire(key, expire, function (err, res) {
|
|
584
682
|
const end = Date.now();
|
|
585
683
|
const time = end - start;
|
|
@@ -662,7 +760,7 @@ const api=async(options, dbm, json)=>{
|
|
|
662
760
|
let lstop = json.stop!=null?json.stop*1:-1;
|
|
663
761
|
let {field:id, val:vid} = getFirstField(filter);
|
|
664
762
|
|
|
665
|
-
let ltdml = ['hfind','upsert','set','get','scan','incrby','sadd','srem','smembers','hset','hgetall','del','incrbyfloat','expireat','setnx','hsetnx','hmset','expire','lrange','keys'];
|
|
763
|
+
let ltdml = ['sinter','sunionstore','scard','hmget','hfind','upsert','set','get','scan','incrby','sadd','srem','smembers','hset','hgetall','del','incrbyfloat','expireat','setnx','hsetnx','hmset','expire','lrange','keys'];
|
|
666
764
|
for (let x of ltdml){
|
|
667
765
|
if (utl.ObjectEmpty(json,x)){
|
|
668
766
|
dml = x; break;
|
|
@@ -671,6 +769,10 @@ const api=async(options, dbm, json)=>{
|
|
|
671
769
|
|
|
672
770
|
try{ eval(` key = json.${dml}; `); } catch(e){}
|
|
673
771
|
|
|
772
|
+
let keysArray = json.keys!=null ? json.keys : [];
|
|
773
|
+
let fieldsArray = json.fields!=null ? json.fields : [];
|
|
774
|
+
let destination = json.destination!=null ? json.destination : '';
|
|
775
|
+
|
|
674
776
|
let r;
|
|
675
777
|
switch (dml){
|
|
676
778
|
case 'set': r = await set(options,dbm,key,value,expire); break;
|
|
@@ -690,9 +792,13 @@ const api=async(options, dbm, json)=>{
|
|
|
690
792
|
case 'setnx': r = await setnx(options,dbm,key,value,expire); break;
|
|
691
793
|
case 'hsetnx': r = await hsetnx(options,dbm,key,value,expire); break;
|
|
692
794
|
case 'hmset': r = await hmset(options,dbm,key,value,expire); break;
|
|
693
|
-
|
|
795
|
+
case 'expire': r = await expire(options,dbm,key,expire); break;
|
|
694
796
|
case 'lrange': r = await lrange(options,dbm,key,lstart,lstop); break;
|
|
695
797
|
case 'keys': r = await keys(options,dbm,key); break;
|
|
798
|
+
case 'sinter': r = await sinter(options,dbm,Array.isArray(key) ? key : [key]); break;
|
|
799
|
+
case 'hmget': r = await hmget(options,dbm,key,fieldsArray); break;
|
|
800
|
+
case 'sunionstore': r = await sunionstore(options,dbm,destination,keysArray); break;
|
|
801
|
+
case 'scard': r = await scard(options,dbm,key); break;
|
|
696
802
|
default: r = {"dml":"404", "err":"dml not found."};
|
|
697
803
|
}
|
|
698
804
|
|
|
@@ -788,14 +894,18 @@ module.exports ={
|
|
|
788
894
|
sadd,
|
|
789
895
|
srem,
|
|
790
896
|
smembers,
|
|
897
|
+
sinter,
|
|
791
898
|
scard,
|
|
899
|
+
sunionstore,
|
|
792
900
|
hset,
|
|
793
901
|
hgetall,
|
|
902
|
+
hmget,
|
|
794
903
|
del,
|
|
795
904
|
hfind,
|
|
796
905
|
upsert,
|
|
797
906
|
api,
|
|
798
907
|
incrbyfloat,
|
|
908
|
+
expire,
|
|
799
909
|
expireat,
|
|
800
910
|
lrange,
|
|
801
911
|
keys
|