*The question is about these Redis commands and how to use 3° and 4° in a single call.*

1) 

```
HMSET key field value [field value ...]

```

2)

```
ZADD key [NX|XX] [CH] [INCR] score member [score member ...]

```

3) 

```
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]

```

4) 

```
ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]

```

i have thousand of points with x y z coords: p1,p2,p3,p4,p5,p6,p7...

```
HMSET p_1 x 10 y 20 z 30
HMSET p_2 x 20 y 30 z 40
HMSET p_3 x 30 y 40 z 50
...
...

```

i have three sorted set : xsorted, ysorted, zsorted 

```
zadd xsorted 10 p_1
zadd xsorted 20 p_2
zadd xsorted 30 p_3
... 

```

(all x as scores and keys of points p\_1,p\_2,p\_3... as members

```
zadd ysorted 20 p_1
zadd ysorted 30 p_2
zadd ysorted 40 p_3
....

```

(all y as scores and keys of points p\_1,p\_2,p\_3... as members

```
zadd zsorted 30 p_1
zadd zsorted 40 p_2
zadd zsorted 50 p_3
...

```

(all z as scores and keys of points p\_1,p\_2,p\_3... as members

i have range\_x, range\_y, range\_z client-side as results of ZRANGEBYSCORE :

```
range_x = ZRANGEBYSCORE xsorted min max    
range_y = ZRANGEBYSCORE ysorted min max 
range_z = ZRANGEBYSCORE zsorted min max 

```

i have xyzinter client-side as result of ZINTERSTORE:

```
ZINTERSTORE xyzinter 3 range_x range_y range_z

```

So xyzinter has the keys of points with x,y,z coordinates in a range of values. Good , i need it.

There is the possibility to execute the commands up described, in a faster way, with only "two" calls?

Something like: 

1) 

```
ZINTERSTORE xyzinter 3 
ZRANGEBYSCORE xsorted min max    
ZRANGEBYSCORE ysorted min max 
ZRANGEBYSCORE zsorted min max 

```

2) 

```
ZRANGE xyzinter start stop

```

Thanks in advance
Mario