문제

I'm coding an IM system.

I'm using Redis and JSON to store the data. I have a Redis Set with the conversation IDs. When I retrieve them, I would like to get the list sorted by the timestamp of the messages:

conversation 9  -> last message timestamp: 1390300000
conversation 12 -> last message timestamp: 1390200000
conversation 7  -> last message timestamp: 1390100000

I have a Set with the conversations where each user participates (user1337:conversations) and a List with the JSON-encoded messages of each conversation (conversation1234:messages).

I guess there is no need for tricks, so it can be done natively with Redis. How would you manage to achieve this?

도움이 되었습니까?

해결책

Sounds like a Sorted Set is exactly what you need.

You would set the timestamp of each conversation as its score (see ZADD) and then you can retrieve them ordered, using commands like ZRANGE, ZRANGEBYSCORE, ZREVRANGE and ZREVRANGEBYSCORE.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top