This is certainly a valid use case. You can certainly use redis as a dependable data store if you keep appendonly mode on and remember to cron up BGREWRITEAOF once daily or so.
Or don't, treat it as a transient store only for temporary calculations and disable fsync all together (or much less frequently). You can really tune it to how you need to use it in your app.
As for ZUNION I thought about that too, recently. I'm not sure of why it doesn't exist, but you could always set an EXPIRE time on it so you recover that memory after you've pulled the data you need out of it.
- Josiah
ZUNIONSTORE <tempkey> <count> source1 source2 ...
ZRANGE <tempkey> 0 -1 WITHSCORES
DELETE <tempkey>
Wrap those in whatever client-side pipelining you want, or throw a
multi/exec around it, and you are done.
- Josiah