00:00
各位同学大家好,我是上硅谷加瓦一学科孟庆祥老师。接下来呢,我给大家介绍几个常见的面试题,第一个呢,就是RA在项目中的。使用场景。这个问题呢,我一个表格的形式给大家进行讲解,写个两行啊。两列啊,六行的一个表格来给大家去讲,第一个呢就是数据类型,第二个呢是使用场景,然后把这表格呢做个调整,那数据类型呢,总共有五种数据类型,第一个是使卷,第二个是什么呢?哈希,第三个是list,第四个是said,第五是z said。我们也叫shed。那尺寸这种数据类型什么时候使用呢?比如说。我想知道什么时候要封锁一个IP地址啊,IP地址我就可以使用死去。
01:09
那么使用为什么要封锁一个IP地址呢?假如说某一个IP地址,那么它在某一段时间内访问的特别特别频繁,那么有可能这个IP地址可能存在风险,所以我要对它进行一个封锁,那么我怎么去记录当前IP地址访问了多少次呢?可以使用实质类型的。啊,数据类型的一个命令啊。Encourage啊,使用它使用这个命令来记录,来记录我当前这IP地址被访问的次数,这是第一个,那么第二个哈希,哈希用来存储什么呢?存储用户信息,那么在这儿老师给大家举个例子,比如说我们的用户信息呢,有什么呢?用户肯定得有对应的,嗯。
02:00
名称嘛啊,假如说先有一个ID,还有一个name以及配置,假如说就举这几个啊。那么存储怎么存储呢?是H,哈希的存储方式是h set,这是T,这是什么呢?Field。啊,Field,然后接下来是什么呢?V啊,就是这个value,也就是值的意思,那么这种怎么去存储啊H,比如说我要存储这这个存储第一个K,那么这K我以什么去命名呢?我就以当前的这个user ID去命名啊user ID假user写个user k吧,写个user k,那么我要存谁呢?Field,假如我要把name存上,那么这个name存谁呢?而me,然后h set,我再去存储一个,同样还是user key。
03:03
然后第二个是age,然后是这个年龄23岁。啊,存储一个这个,那么这U的ID呢,我在上边就给它存储什么h set。Us key ID啊,这比如说写个。101吧啊,举个例子,那么以这种存储的方式的好处是什么呢?当我去修改用户某用户信息的某一项属性的值的时候,我直接可以通过这个field取。啊,Feel的曲。那么假如说我要将它修改成102啊,我就可以先怎么办呢?我这写个例子修改案例啊,我取的时候我怎么取呢?我就是H。
04:01
Get,取谁呢?User key,我取一个ID,那么将数据取出来之后,把它对应的值取出来,值就是101,把它改成102,然后干嘛呢?我再塞进去就可以了,H。Set,这是user t,然后加上我的谁呢?ID。然后呢,我再给个谁呢,对应修改之后的值是谁102这么去就可以了。这是用哈希来存储,那么有的同学可能会问啊,为什么啊,为什么不使用string类型来存储,那么使用string来存储的话,大家来跟我走,看一下set string类型呢,它是这么去存的,Set啊,一个。同样是U3K,那么这个V。
05:01
啊,这个value呢,就是用户的信息字符串啊,我在这写上它啊用户信息的字符串。啊,字数,那么在这假如同样,我还是以这个案例为基准啊,还是去修改。UID,那么你这就应该这么去写。同样。修改的话就是get get谁呢?User key,那么它取出来get user key的时候呢,它会将你user k对应的值全部进行反序列化。全部进行反序化,而我这里所存储的数据包含了ID name和age,但是我只需要修改写ID,那我反序列化的name和age其实没有任何意义。啊。那么序列化和反序列化是由IO进行操作的,是由IO进程。所以增加了我们的。
06:06
IO次数啊,给程序的性能啊,降低了程序的性能,所以我们在存储用户信息的时候,我们使用什么存储呢?是用哈希这种数据类型来存储啊。所以存储user像user用户这种信息的时候呢,不建议不建议使用4G类型来存储啊。不建议。啊,不建议使用试卷类型。这是前两个。那么接下来还有。呃,咱们的list,那么list呢,什么时候去使用我们。来说一下啊,List实际上它能够实现一个最新消息的一个排行。啊,排行,实现最新消息的一个排行,那么还可以干嘛呢?还可以还可以利用list什么呢?List的p push命令啊push命令。
07:16
将任务存在哪呢?List他这种。集合中啊,历史的集合中,然后接着我们怎么呢,把命令存到集合中,然后我们还同样同时同时使用。啊,另一个命令啊,使用另一个命令将任务从集合。中取出,那么哪个命令呢?Pop这个命令啊,这个命令取出,那么它。大家都知道啊。这个list的一个。
08:02
呃,Push,一个push和push,那么它其实说白了这两个操作是用来做什么呢?其实我们是用list read的list这种数据类型来。模拟。来模拟谁呢?消息队列?那么这个啊,在我们的实际工作中是非常常用的,比如说我举个例子啊,电商中的秒杀啊,电商中的秒杀可以。就可以采用这种方式。来完成一个。秒杀活动来完成一个秒杀活动啊,那么具体呢,咱们在这不做详细的解释啊,那么最后一个什么呢?Set,那么set这个集合呢,它有一个特殊之处啊,特殊之处什么特殊之处就是可以。
09:15
可以自动排除啊,可以自动排除,也就是说它是不重复啊,它是不重复,那么它的使用场景在哪呢?比如说啊微博啊,我相信大家肯定都用啊,在微,比如说在微博中每个人的好友。江江美个人的好友啊。将每个人的好友存在哪呢?集合。啊,存在集合中。咱们这里的集合就是谁呀,对sat啊,Sat集合中。那么存在它干嘛呢?大家都知道赛,刚才我说它自动排除一个人,不能同时加另一人两次啊,也说你当前这好友。
10:07
你加,比如说你加张三这个啊好友,那么在你的列列表呢,张三只能出现一次,不能出现两次啊。那么这样。那么这样,假如说求什么呢?求两个人的。共同啊,求两个人呢?共同。好友的操作啊,我们只需要求什么呢?交集啊,我们只需要求交集即可。什么意思,假如说啊,我比如老师现在微博中有很多好友,那么当前您。微博里有很多好友,那么我们两个要想求这个我们两个。都有的好友是谁呢?我就可以使用这set集合中有什么求交集的命令啊,一算就可以了,因为set本身它就会自动排除,我们加好友的时候呢,不会有重复的好友啊,所以在这呢是。
11:14
Set的使用场景,那么最后一个是什么呢?最后一个是they set,我们也叫做什么呢?Sorted set,那么它的好处就是什么呢?可以以什么呢排序啊,有序集合,那么是可以是以某一个什么呢?条件为权重啊,以某一个条件为权重。进行排序,那么在这举一个很简单的例子啊,很简单的例子,嗯,大家都知道这个。京东啊,这个京东我们在看商品详情的时候呢,商品详情的时候都会都会有一个。
12:00
排名啊,都会有一个叫综合排名啊,那么综合排名还有什么呢?还可以按还可以还可以。按照。啊,还可以按照什么呢,价格进行排名。那么这些操作我都可以使用谁呢?C set来完成啊,那么以上呢,就是RA的五种数据类型在项目中的使用,那么具体还需要根据当前实际开发项目经理的需求来操作。那么这个red在项目中的使用场景,我就介绍到这儿。
我来说两句