【面试题】即兴业务-Redis相关

题目描述:
有五个运动手环,ID分别是1001、1002、1003、1004、1005,每个手环每隔一分钟会上传心跳 heartbeat、运动步数 steps 以及其他数据,需求是:每天要统计用户的这些数据!
问:使用什么类型来存储这些数据?该如何存储?

先来分析一下这个业务:

  • 首先要清楚一点,Redis是没有条件查找指令的,所以说要满足查询条件,在存储数据的时候就应该设法按照可以满足这种查询条件的方式去存储。
  • 需求是要查看每项功能每天的数据,所以应该是每个手环的每项功能作为一个key来存储,而且是每天,所以时间也要加上。那么暂时可以确定Redis中这个key应该怎么去存储,比如 1001_20191207_heartbeart。
  • 上一步确定了怎么去存储key,那么应该就能想到用什么结构去存储了吧。对,用链表,也就是Redis常用五种数据类型中的 list。

好了,分析完了也就基本清楚了,下面简单看一下效果:

127.0.0.1:6379> lpush 1001_20191207_heartbeart 68
(integer) 1
127.0.0.1:6379> lpush 1001_20191207_heartbeart 70
(integer) 2
127.0.0.1:6379> lpush 1001_20191207_heartbeart 66
(integer) 3
127.0.0.1:6379> lpush 1001_20191207_heartbeart 71
(integer) 4
127.0.0.1:6379> lrange 1001_20191207_heartbeart 0 -1
1) "71"
2) "66"
3) "70"
4) "68"

你可能感兴趣的:(【面试题】即兴业务-Redis相关)