00:00
好,下面那么同学们。Red啊,再次强调,你千万不能说现在你对red的理解就是set k机,那这个真的是很掉掉渣很掉价的事情了,那么在这个数据类型,既然人家造出来了,一定有它的用处,你们用到可能是你对的发掘还不够,你们公司的业务还不够复杂,尽量的尝试着用red把你们的业务改造一下,你会收获到意想不到的高性能的效果,OK,好,那么下面set非常重要,那么同学们。我们呢,直接来看一下啊。That呢?不废话。ST,注意set是不是有点类似于我们加入里面,Set无序无重复,那么最经典的啊。添加一个元素,删除一个元素,获取集合中的所有元素是不是便利这个set那么好,我们稍微来看一下啊,S at,比方说SAT1,那么现在就是1112345,弟兄们几个我写了八个,是不是只发进去五个,OK吧,S。
01:06
一,那么12345 OK,一个是往里面加,一个呢是往里面变列好,那么其他的还有什么获取集合中的元素,那么这个sat这个T里面现在有多少个?那么再来还有两个比较重要的,从这个集合当中随机弹出去一个元素。S random t,第二个,但是这个时候是不删除元素,听懂了吧,那么它是这样啊,Random set什么一,如果我这儿什么都不写,你看这个cant是不是可以省略不写的话,就是默认弹出去一个,听懂了吧,但是S。他SET1。SC卡SAT1,大家请看是不是还是这五个,它是从这五个里面随机的选出来一个,但是并不删除元素明白,那接下来啊,请看s pop与它相关的SAT1一样啊,如果说我这。
02:09
什么都不写,他的意思就是随机出去一个。听到,那么这个时候大家请看A卡的还有几个了?还有四个,一个删,一个不删,明白,那么执行命令的时候。如果我这是pop,后面这个看没有省省没有省略了,这次我写了个三,什么意思啊,直接出去出去三个不写,默认就是一个写了以后你写几个就是几个,OK吧,那么这个呢,我就不再多废话了,好那。接下来同学们请看。那么。这个呢,是我们的删除元素s re t,删除里面的一个都OK吧,好,那么同学们那么假设啊,Delete set1,那么正儿八经的就把这个set都干掉了,好,我们再来一次S,待会我们会用啊,SET1,我这去写12345。
03:02
六七八九十兄弟们没什么问题吧,那么a set1,那么你看几个元素啊,十个都在这好。下面还有一个赛呢,最复杂最啰嗦的是集合,那么就是差集交集并集运算,那么这个呢,以前都讲过,所谓的差值就是A减B。在A不在B,用的叫S迪法所谓的交集,那么就是在A,也在B,叫S英塔尔所谓的并集,那么就是一部分属于A,也部分属于BF,总之一句话,你们俩给我合并好,那么同学们。告诉我,孤立的给你现在讲这些命令,你一听。都懂。用在哪儿?不知道。对吧,所以说呢,看着这些每一个命令威力无穷,你用好了对你的系统帮助非常大,那么下面我们来看一下啊。
04:00
Set这个命令非常重要,在互联网里面,尤其做社交类的网站和这样的业务,第一个微信的抽奖小程序,什么意思啊?兄弟们,我们这个之前是不是比方说S1。好,现在我们要求特等奖抽一个,十个用户里面抽一个,好,恭喜七号员工中奖了,上台领取什么?一个电视机或者一个苹果笔记本电脑,那么下面二等奖我们要设置多少个,三个出来,三个原告,那么是不是十八四这么说能跟上,当然了,我们抽奖的时候不要忘了我们是不是叫s pop,为什么?因为你领过一等奖的员工了,你不能再去抽二等奖,三等奖,四等奖,听懂了吧,所以说这种呢是不删除的,而s pop是删除的,这么说同学们能跟上,比方说现在我们抽三等奖,抽。两个同学。走起,四号五号拿到了三等奖,那么再来s cart,现在SET1。
05:04
你懂的,现在是不是只有八个,那么s members set机请大家看四号五号已经出去了,那么剩下的抽奖人数是不是只能在这八个用户里面去抽了,所以说你懂的,微信的抽奖小程序用set来做,非常的方便走起。大家请看。现在微信呢,经常送书啊,如果你也关注的话,那比方说杨哥那个抽一本叫这么一个名字啊,叫什么即兴判断立即参与,我点一下什么意思啊,是不是我点一下这个红色按钮,相当于执行了一个命令,第一条叫用户ID立即参与按钮,我一点是不是叫SI的T,这个T现在是用户ID是谁,杨哥这个T是就是本次抽奖活动的一个T假设啊。就我们刚才所说的,那么A2假设这个叫抽检,那么现在我们为了庆祝国庆。OK,那么现在呢,一号用户点一下立即参与,二号用户点一下立即参与,三号用户点一下立即参与,你懂的,现在什么意思啊,是不是有三个用户点了。
06:08
抽奖。国庆的这个抽奖活动啊,第一步能跟上吧,第二个你看现在告诉你有两万多个人已经参与了,怎么来的,是不是就是一个统计总数啊,那么好了,是不是就是我们的。S card。抽奖幺零,幺零现在几个人了,三个人这么说能跟上,你看表面上你在微信小程序上面看到这些功能,如果你要用纯的MYSQL数据库去做,很繁琐,但是如果你要用red去做,你告诉我是不是就是一条命令的事儿,所以说我们Java程序属于后端程序,前端呢是H5妹子去写的,我们之间就是拿杰森串去沟通,反正你点一下立即参与。前端的。开发工程师啊,发一个rest风格的请求,一点点,其实而言,对Java程序而言,后台是不是就是这么一个命令的事儿啊,OK,那么假设你要开发这么一个功能是吧?老板问你要多长时间,你说三天,那其实而言的话,说30分钟就可以上线了,剩下的事你是不是可以划水摸鱼了?OK,好,那么同学说陈雪也没那么累哈,你只要记住好的话,当然开玩笑啊,咱们还是好好干,那么再来。
07:18
抽奖,从这个赛集合当中抽任选N个中奖的人,S member这个随机抽奖两个人,那么你看立即参与我们也说了嘛,他可能就是什么,在两万多个人里面抽十个人,听懂了吧,那么这个时候就是这个编用户编号随机出来十个,那么做不了假。但是这个元素是不删除,那么假设啊,你只是一次性抽奖,无所谓了,就是这样,23208,两万多个人里面抽十个幸运用户,写个10K写个十出去玩火,但是如果你要超过一等奖,二等奖三等奖,那么一定要用A这个元素怎么着会删除明白好,那么同学们,这是一个第二个微信朋友圈点赞,那么这个set。
08:00
也可以大显身手。好,那么请看一下杨哥的朋友圈。这是真事啊,这是杨哥,那么下面大家请看啊,杨哥,杨哥,我要去啊,这就不读了。我当时真的是以为他打错字了,他说我out了,他的他这个意思就是要去京东面试,那么我就不废话了,OK吧,那么你看看就懂了,下面我的问题是。第一个。点一下干嘛,你要点赞?第二个点完赞的头像是不是要罗列,OK,是不是要有点类似于把它全部取出来?第三一个点到这里是不是可以不但可以点赞,还可以取消点赞啊,那么我们来看看怎么玩的。首先啊,现在杨哥呢,发布了一条消息,你就把它当做我发布了一个message ID,或者发布了一篇文章,无所谓哈,反正有一个消息编号,那么走起。假设你看到了新增点赞,那么就是爱的我发布的消息,比方说就是去京东面试这条点赞,哪几个用户点赞了,ID1张三,ID2李四,ID3王五,那么你跟我讲,只要点一下赞的是不是通通加到这条消息里面,这个message ID里面,我现在上面这个是不是就是一个message ID,只要下面点过这个新的就是点赞的,就把它加到这个set集合里面,听懂了吧,这是第一个,第二个我们假设什么取消点赞呢?那么大家请看是不是sre往这个里面。
09:31
把以前点赞过的这个用户再灭掉,再取消掉这个s re,什么是不是就是我们上面说说过的删除元素s remove re Mo v听懂了吧?那么所以说请看一下我们的第二个功能就是微信的朋友圈点赞,那么这个呢,就是点赞就是加,取消点赞就是减你朋友圈,朋友圈发布的这个就是一个message ID,把所有用户ID点进去,就是对你点赞过的用户只要有了,那么我要把它全部罗列,那么这个时候你懂的,全部罗列是不是就展现所有点赞过的用户啊?那么是不是就是我们前面的s members,把这条消息里面的这个set集合里面的全部点赞用户ID罗列出来,那么对应到界面上是不是就是一个一个的头像啊?
10:15
能跟上好。再来点赞用户数的这个统计,就是常见那个红色的那个点赞数啊,你也知道没进去之前是不是有个右上角有个红色的,那么是不是就是我们的A卡的,统计一下这条消息被多少人点过赞,那么点过赞的是不是就是加到这个集合里面的,那么所以说你看啊。判断某个朋友是否对杨哥点赞过,那么是不是is member,那么是不是有点赞过,那么看看诶,我想看看张三有没有对我点赞过,那么我这条消息里面查查张三的用户有点赞过了没有,这还没有点赞,你可以提醒别人给你点赞明白了吗?所以说你看几个命令是不是就可以完成一个微信朋友圈点赞的一个案例和case呀。好,那么下面我们再来啊。这是微信,那么微博呢,好友的关注,社交关系也可以用什么意思啊,集合运算。
11:05
我就是没讲,你也应该明白。回答我。假设属于A,同时也属于B的,比方说啊,我和宋洪康老师都喜欢g vm Java虚拟机,那么这个时候是不是我跟宋宏康老师兴趣的技术的交集,是不是就有GVM啊,那么对应到我们的。微博那么大家可以看到啊,那么这个呢,是局座啊,因为杨哥呢,可能比较喜欢军事啊,什么飞机啊导弹啊,包括这些军事科技呢,比较喜欢,那么。国防的。少将是吧,张少忠,那么现在请看我和张少忠老师共同关注了,那么什么他的这个小秘书啊,什么账户局哈,这个就不废话了啊,那么请问这个怎么把它显示啊。那么来,走起,兄弟们。共同关注的人。比如说I。S1是局座邵周12345 S2的S2是杨哥,34567 S英这个命令都很简单,什么意思啊?S英是就是取交集,那么。
12:11
你懂的。1234534567交集是不就345,那么说明什么?现在杨哥登录新浪微博,到局座张绍忠的微博上,马上就可以获得我和局座共同关注的,那么345这三个用户编号是不是就是我们关注的微新浪微博的其他用户,说明我们两个有共同的兴趣爱好,你看用这个英特尔取交集是不是两个set集合一取交集特别方便,就可以马上得到共同关注啊,那么到现在的什么?一样的,各大电商公司都在用这个功能,为什么?因为你没有发现什么抖音电商直播带货。新浪推荐带货,淘宝带货就是看一个一个的用户就把你的喜欢的东西,你抖音上的那些小视频,你喜欢某个小姐姐都给你点个赞,你点赞的一些东西就会记录后台记录到。
13:02
你所喜欢哪一个小姐姐,下次是不是就拼命的推给你,然后又看到假设张三李四王五你们三个都喜欢林志玲,都喜欢刘亦菲,你们娶到了你们的交集,那么共同关注以后发现什么,是不是你们三个都喜欢的话,我选择出来一个东西,可以同时内部推荐给你,大数据那套是不是就出来了?哎,所以说这个就是一个微劣,好,那么除此以外还有什么我关注的人也关注了他,大家的爱好相同,这个什么意思呢?就是比方说啊,我关注的人。假设华为的余承东啊,现在华为的手机不是卖的比较火嘛,对吧,也关注邵庄,那么说明我跟于总有共同的爱好,喜欢邵庄,听懂了吧,那么这个时候同学们请看。怎么玩呢?我关注了华为的于哥,那么于哥呢,也关注邵忠,我和于总有共同的爱好,那么爱这是杨哥,这是于哥,那么我们两个。你看看你的关注度里面有没有三号用户。局座少招有,你看看你的有没有,我们两个都有,那么说明是不是我们,我关注人也同时关注了它,那么这个功能只要两个都是错,OK,给你罗列那些头像,那么再来。
14:13
一定用过一个东西,是不是叫QQ内推,可能认识的人啊。能跟上,那么相相当于说这种情况下,你告诉我应该取哪个值啊。同学们走起。假设A认识五个同学12345 B认识五个同学34567,那么我们两个的共同认识的同学是不是345,剩下是不是ad法?那么假设我认识12345,你也认识12345,那么。一二是什么意思啊?大家请看ST方属于A但不属于B的元素构成,那么这个时候我们只需要选一个参照点,取一个什么相减的差值就会明白一二我们两个可能是相差的,那么这个时候我们是不是推荐给其中一个没有的用户就猜与喜欢或者是你可能认识的人?那么告诉我通过RA里面的set这种集合运算,是不是特别可以容易求出这是我们两个都认识的人?
15:10
这是某一个认识另外一个不认识的人,这样的推荐是不是特别的给力呀?所以说同学们请看一下,Red的威力是相当强大,这个赛在做社交软件上的关系查找,在做同样的关系,同样的爱好,同样的关注,对于电商的直播推荐,电商的喜欢商品的送货卖货,那是相当有帮助的。所以说同学们这个赛现在考的非常多,就会问你。那你说red里面假设是一个set,我也知道你会这些命令了,你不用给我背这些命令,你项目当中用在哪?最经典的那年会做个抽奖小程序,是不是可以用set OK,好,那么同学们set就给大家介绍到,这很重要哦。
我来说两句