Redis key design for real-time stock application

Viewed 3426

I am trying to build a real-time stock application. Every seconds I can get some data from web service like below:

[{"amount":"20","date":1386832664,"price":"183.8","tid":5354831,"type":"sell"},{"amount":"22","date":1386832664,"price":"183.61","tid":5354833,"type":"buy"}]

tid is the ticket ID for stock buying and selling; date is the second from 1970.1.1; price/amount is at what price and how many stock traded.

Reuirement

My requirement is show user highest/lowest price at every minute/5 minutes/hour/day in real-time; show user the sum of amount in every minute/5 minutes/hour/day in real-time.

Question

My question is how to store the data to redis, so that I can easily and quickly get highest/lowest trade from DB for different periods.

My design is something like below:

[date]:[tid]:amount
[date]:[tid]:price
[date]:[tid]:type

I am new in redis. If the design is this is that means I need to use sorted set, will there any performance issue? Or is there any other way to get highest/lowest price for different periods.

Looking forward for your suggestion and design.

1 Answers
Related