bonsaif 1.10.30 → 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 +40 -2
- 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);
|
|
@@ -730,7 +760,7 @@ const api=async(options, dbm, json)=>{
|
|
|
730
760
|
let lstop = json.stop!=null?json.stop*1:-1;
|
|
731
761
|
let {field:id, val:vid} = getFirstField(filter);
|
|
732
762
|
|
|
733
|
-
let ltdml = ['hfind','upsert','set','get','scan','incrby','sadd','srem','smembers','hset','hgetall','
|
|
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'];
|
|
734
764
|
for (let x of ltdml){
|
|
735
765
|
if (utl.ObjectEmpty(json,x)){
|
|
736
766
|
dml = x; break;
|
|
@@ -739,6 +769,10 @@ const api=async(options, dbm, json)=>{
|
|
|
739
769
|
|
|
740
770
|
try{ eval(` key = json.${dml}; `); } catch(e){}
|
|
741
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
|
+
|
|
742
776
|
let r;
|
|
743
777
|
switch (dml){
|
|
744
778
|
case 'set': r = await set(options,dbm,key,value,expire); break;
|
|
@@ -752,7 +786,6 @@ const api=async(options, dbm, json)=>{
|
|
|
752
786
|
case 'smembers': r = await smembers(options,dbm,key,toJson); break;
|
|
753
787
|
case 'hset': r = await hset(options,dbm,key,value,expire); break;
|
|
754
788
|
case 'hgetall': r = await hgetall(options,dbm,key); break;
|
|
755
|
-
case 'hmget': r = await hmget(options,dbm,key,value); break;
|
|
756
789
|
case 'del': r = await del(options,dbm,key); break;
|
|
757
790
|
case 'incrbyfloat': r = await incrbyfloat(options,dbm,key,value,expire,counter); break;
|
|
758
791
|
case 'expireat': r = await expireat(options,dbm,key,expire); break;
|
|
@@ -762,6 +795,10 @@ const api=async(options, dbm, json)=>{
|
|
|
762
795
|
case 'expire': r = await expire(options,dbm,key,expire); break;
|
|
763
796
|
case 'lrange': r = await lrange(options,dbm,key,lstart,lstop); break;
|
|
764
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;
|
|
765
802
|
default: r = {"dml":"404", "err":"dml not found."};
|
|
766
803
|
}
|
|
767
804
|
|
|
@@ -857,6 +894,7 @@ module.exports ={
|
|
|
857
894
|
sadd,
|
|
858
895
|
srem,
|
|
859
896
|
smembers,
|
|
897
|
+
sinter,
|
|
860
898
|
scard,
|
|
861
899
|
sunionstore,
|
|
862
900
|
hset,
|