小李毕业后在一家公司做软件工程师,转眼间,一年多的时间已经过去了。
回想刚毕业那会,他是怀着无比忐忑的心情进入了这家公司的技术部门。各种新奇的开发工具,叫不上名字的众多软件框架,庞大的代码库,井然有序的工作流程,都是小李以前在学校里不曾遇到过的,这让他感到了前所未有的压力。于是,在开始的那半年,小李就像一株久旱的禾苗遇到了雨水,拼命地吸收着工作中遇到的每一点知识。他学习新的编程语言,学习新的开发工具,学习调试和解bug的技巧,也学习处理各种棘手的业务逻辑。虽然每天工作很累,但每天都是满满的收获。
本文是《Redis内部数据结构详解》系列的第七篇。在本文中,我们围绕一个Redis的内部数据结构——intset展开讨论。
Redis里面使用intset是为了实现集合(set)这种对外的数据结构。set结构类似于数学上的集合的概念,它包含的元素无序,且不能重复。Redis里的set结构还实现了基础的集合并、交、差的操作。与Redis对外暴露的其它数据结构类似,set的底层实现,随着元素类型是否是整型以及添加的元素的数目多少,而有所变化。概括来讲,当set中添加的元素都是整型且元素数目较少时,set使用intset作为底层数据结构,否则,set使用dict作为底层数据结构。
今天周末,给大家讲个小故事。
微爱公司有一项传统:每个月要选择一天,给当月所有过生日的同学一起庆祝生日。一般来说,当月有几个过生日的同学,公司行政就准备几个蛋糕。
今年11月份的生日庆祝,就选择在了光棍节(11月11号)下午。结果大家发现,这个月竟然只有一位同学过生日。这大概是一个小概率事件,但概率到底是多少呢?于是,Vito(CEO)突发奇想,给大家出了一道概率题,答对的同学呢,有4位数以上的奖金哦。
美国当地时间2016年10月4日,谷歌在一个新品发布会上首次提出了AI-First(人工智能优先)战略[1]。在过去的十年,谷歌一直秉承的是Mobile-First的发展思路,而未来的十年,则会迎来一场新的革命。这将是比移动互联网规模更为宏大的一场技术革命,如今,我们正站在历史的分界点上。
那一年,小白刚从学校毕业,学的是计算机专业。最开始他也不清楚自己想要一份怎样的工作,只知道自己先找个互联网公司干干技术再说。
有一天,小白来到一家刚成立不久的小创业公司参见面试。公司虽小,但团队却是华丽丽的。两位创始人都是MIT的MBA,Co-CEO。他们号称,公司的运营、财务、市场以及销售人员,都是从大公司高薪挖过来的。此外,他们还告诉小白,公司另有一位政府背景深厚但不愿透露姓名的神秘股东加盟。
粉丝们又在尖叫!
韩星坐在看台上,冷眼扫视着周围疯狂的人们。
柳冰岚,我当然也是你的粉丝,但绝不是普通的一个。我对你的了解,远胜过现场几万人的总和。
本文是《Redis内部数据结构详解》系列的第六篇。在本文中,我们围绕一个Redis的内部数据结构——skiplist展开讨论。
Redis里面使用skiplist是为了实现sorted set这种对外的数据结构。sorted set提供的操作非常丰富,可以满足非常多的应用场景。这也意味着,sorted set相对来说实现比较复杂。同时,skiplist这种数据结构对于很多人来说都比较陌生,因为大部分学校里的算法课都没有对这种数据结构进行过详细的介绍。因此,为了介绍得足够清楚,本文会比这个系列的其它几篇花费更多的篇幅。
我们将大体分成三个部分进行介绍:
有一次,我和Vito(我的合伙人)聊起了当下热门的几种技术趋势。当谈及它们在未来可能的发展前景的时候,Vito说了下面的一段话:
人工智能是个信息革命到蒸汽机规模之间的机会,相比之下虚拟现实应该是移动互联网级别的,而用户个性化服务应该是伴生规模的。