童话说说技术创业美文职业
投稿投诉
职业母婴
职场个人
历史治疗
笔记技能
美文纠纷
幽默家庭
范文作文
乐趣解密
创业案例
社会工作
新闻家居
心理安全
技术八卦
仲裁思考
生活时事
运势奇闻
说说企业
魅力社交
安好健康
传统笑话
童话初中
男女饮食
周易阅读
爱好两性

如何利用缓存理论来分析网购物流的未来

10月26日 乔了了投稿
  计算机技术的进步颠覆了整个世界,而其中的很多技术不仅能解决计算机方面的问题,对很多其他方面的问题也很有启发。今天笔者给大家介绍缓存理论,从缓存理论的角度来看待一些产品及生活上的问题,将会有许多有趣的结果,这就是今天的主题缓存理论。笔者在此保证,本文没有门槛,但需要耐心。
  理论
  如果这节看不太明白不用纠结,结合后面的例子会容易得多。
  众所周知,内存和硬盘是电脑的两个重要部件,虽说两者都是用来存储数据的,特性却大相径庭:
  内存访问速度快,容量小,断电后无法保存数据,在计算机中充当缓存的角色。
  硬盘访问速度慢,容量大,断电后数据不丢失,用于长久地保持数据。
  CPU是个急性子,每秒几百亿次计算不在话下,自然爱和内存打交道,不待见硬盘,不待见到什么程度呢,即使CPU要读取硬盘里的数据,也先让硬盘把数据交给内存,CPU再从内存读,缓存往往就是指这样快却容量小的中间存储。
  问题来了,内存容量小,而计算机可能会使用的数据却很大,导致内存装不下,只能把装不下数据搁硬盘里,要使用硬盘中的数据,得先让内存清出一些暂时不用的数据,再从硬盘里把所需数据加载到内存,这种倒腾的过程叫做置换Swap,而清出数据的操作称为淘汰数据。从硬盘读数据就耗时了,所以我们希望我们每次取数据时数据都在内存里,减少硬盘的访问。
  操作系统有一个很重要的任务调整内存中的数据,目的在于减少用户使用电脑时因读取硬盘而造成的延迟和卡顿。调整一般发生两种情况下,一个是电脑闲置的时候,提前将用户可能会用到数据搬到内存中;另一个就是置换的时候,加载用户所需数据的同时,舍弃那些比较不可能被访问的数据。
  计算机科学里把访问数据时数据刚好在内存里的概率成为命中率。为了提升用户体验,减少等待,就得提高命中率,选择合适的内存置换(淘汰)算法就显得至关重要,内存置换算法是指在发生置换操作时,应该淘汰内存中的哪些数据,来放置新的数据,常用的算法(别怕,都很简单)有:
  、先进先出算法(FIFO,FirstInFirstOut)
  淘汰最先进来的数据,这个算法非常简单,这样做的道理是最先进来的数据可能已经用过了,过时了。对于一次性或短期使用的数据,非常合适,但对于长期使用的数据,就不合适了。这个算法命中率并不高,常常被提起主要是用来衬托其他算法的优越性,有点类似奥特曼的小怪兽。
  、最久没访问算法(LRU,LeastRescentlyUsed)
  淘汰内存中最久没有被用到的数据,这个就比FIFO合理多了,最久没被访问,可能真的是过时了。从逻辑上来说是相对合理的,而且比较简单,现在流行的操作系统大多都使用它或它的变种。当然,这个算法对于那种需要被周期性访问的数据就不合适了。
  、最不频繁算法(LFU,LeastFrequencyUsed)
  淘汰内存中在最近一段时间内使用频率最低的数据,这个又比LRU更合理了,就是保留最近最常用的数据,剔除最不常用的蛀虫。它并不是操作系统的宠儿,因为它计算量比较大,自身会消耗一些内存,对于操作系统这样的惜时(内存)如金的家伙是不可接受的。
  、智能算法(AI)
  我定义的一类算法,它泛指通过机器学习算法依据各种历史数据,计算各个数据未来一小段时间内将会被访问的概率,保留概率高的,淘汰低的。举个例子,假设你白天使用电脑工作,晚上使用电脑娱乐,那么AI算法可能会在白天尽量在内存中保留工作相关的数据。
  比如一些word文档及办公软件的数据,而到了晚上,工作相关的数据则优先被淘汰,内存中常驻游戏,影音之类的数据。再比如,操作系统检测到了我刚刚下载了一部电影,那么这时应该将这部电影的数据及播放器的数据加载到内存中,其他类型的则可能被淘汰。AI算法的计算量显然很大也很复杂,入不了操作系统的法眼,但在很多情况下却非常好用。
  再介绍一个概念:多级缓存,后面将会用到。
  其实在电脑中,内存并不是读取速度最快的存储介质,还有更快的,叫CPU缓存。如果你看CPU的参数,经常能看到(L1L2L3缓存,他们共同组成CPU缓存),它是CPU的一部分,你们在看CPU规格时常常会看到,它离CPU计算核心更近,访问速度更快,但容量更小。CPU缓存和内存的关系与内存和硬盘的关系是一毛一样的。其实CPU缓存中还能细分,“L1缓存”是“L2缓存”的缓存,“L2缓存”是“L3缓存”的缓存,“L3缓存”是内存的缓存,如下图所示,这样不断嵌套的缓存结构就叫多级缓存。
  缓存还有另外一个作用,缓冲。
  计算机中的例子不太好说,举个拉面店的例子。
  有个拉面店只卖一种拉面,顾客时多时少,有时一次性来好几个人,师傅现做的话肯定有顾客等很久,如果提前做很多的话又有可能做多卖不出去,那么师傅想了这么一个策略,提前做好一些拉面,放在一个固定的桌子上,如果桌子上的拉面达到2碗,师傅就慢着点做,如果一直没卖出去,桌上的面达到4碗,就完全不做了,如果某个时段生意旺卖很快,桌上的面可能会少于2碗,或者卖完,甚至还有人等,那么师傅就要开足马力做面了。
  那么,这里就把桌子当作缓存,通过缓存策略,给师傅一定的缓冲时间,一定程度上抵消人流波动带来的影响。
  缓冲可以从两个角度解释,一个是任务发送者,另一个是任务处理者。在发送者和处理者之间设置缓存,来协调任务发送速度与处理速度不一致。当任务发送速度大于处理速度时,任务在缓存中堆积,发送者减慢发送速度,处理者提高处理速度;如果缓存中任务非常少了,则提高发送速度,减慢处理速度。如果处理是一次性的,缓存能减少处理的频率。
  举个例子:垃圾桶是一种缓存,如果家里没有垃圾桶,我们一旦有垃圾就得扔到外头的垃圾桶,垃圾桶的存着可以减少我们处理的频率。
  产品例子
  缓存理论不仅在计算机领域应用广泛,而且在生活和产品中也常常用到。我们先对理论进行抽象:
  缓存内存,泛指那些使用方便又非常有限的容器。
  硬盘,那些使用不方便但容量非常大的容器。
  数据,放在容器中的物体。
  算法,上面的算法大多都是说怎么淘汰,而下面往往说的是怎么保留,怎样选择,其实本质是一样的。从保留数据的角度重新解释上面的算法:FIFO,保留最后进入内存的;LRU,保留最近用过的;LFU,保留近期使用最频繁的;AI,保留未来最可能用到的。
  下面举例:
  我们的电脑桌面就是一个“缓存”,你可以在上面放文件及程序,它非常方便,触手可及,但是它容量非常有限,而资源管理器(我的电脑)则像是“硬盘”。桌面空间有限,东西多了也容易造成混乱,所以必须有所取舍,熵君在整理电脑桌面时一般会将最常用的放在桌面上,不常用的淘汰,这其实就是LFU算法。
  我们的手机桌面的首屏也可以当做“缓存”,一打开就能用到,而最下面一排的快捷栏则是更高级的缓存。我一直期望手机有这样一个功能,自动把最常用(LFU)的应用放首屏,省得我去整理。
  chrome的首页就有很多标签卡,都是你最常打开的网站(LFU),非常方便。
  网站的首页也是一个缓存,就拿电商网站来说,首页资源是非常珍贵的,过去,这个首页往往是死的,把一些热门的商品放在首页,而现在都是使用推荐算法为每个用户定制首页,这就是上面所说的AI算法。新闻网站也很类似,以前都是编辑根据经验人工调整的首页,现在往往会引入智能算法(AI),结合用户个性化,新闻时效性等综合因素来安排首页内容。
  生活中也有很多例子。笔者在整理房间的时候就会使用缓存理论,我会划定一些缓存。
  比如桌面,或者其他一些触手可及的地方;我也会制造缓存,比如指定衣柜中的某个格子为缓存,规定放在这个格子里的衣服可以随意堆放。这些“缓存”常常会溢出,比如桌上太多东西了,影响我工作了;或者衣柜里的缓存区衣服太满,衣服不好找了。
  这时我就会清理,我会把不常用的物品清出缓存区,并规整地放在它应该放的地方。这样就避免了频繁整理常用的物品,而这些常用的物品常常在你整理后又会使用到,那么之前就白整理了。这里也用到了缓存的缓冲功能。
  这样的例子还有很多,比如微信的首屏也是个缓存,显示最近的对话,显然是使用LRU算法。当你在某个场景抽象出了缓存,那么下一步就是选取合适的算法,一般情况下LFULRU这样的简单算法就够用了,如果缓存资源非常珍贵,那么就应该求助你们的算法工程师做一套AI算法了,这就是缓存理论。
  缓存理论与电商物流
  如何利用缓存理论分析网购物流的未来呢?
  购物模式
  如果把网购当做一次数据访问,那么我们可以把商品当做数据,把发货的仓库当做硬盘,缓存则可以有很多种,那么我们将得到以下几种购物模式:
  模式一
  从硬盘直接读取数据,不经过缓存。也就是网购,并送货上门。
  ()优点:直接,不需要顾客奔波。
  ()缺点
  慢;
  无法确定派送时间。很多时候顾客在派送的时候不在目的地,或者由于其他原因无法接收,这样要么限制了顾客自由,要么降低了快递员的效率。
  模式二
  先从硬盘读取数据到缓存内存,再从缓存读取数据。也就是网购,送货到自提柜再由用户自提,自提柜就是缓存。
  ()优点:用户收货不再受到快递派送时间的制约。
  ()缺点:
  要自己取,如果自提柜远还不顺路就更费劲了;
  慢;
  很多地方没有自提柜;
  自提柜的空间无法充分利用,如果自提柜很密集,那么空置率肯定很高。
  模式三
  数据已经提前从硬盘加载到内存,直接访问内存就可以了。这就便利店的模式,便利店也是一种缓存,老板进货就是从硬盘加载数据到缓存的操作。
  ()优点:快。
  ()缺点
  要自己取;
  商品有限,很多东西都买不到。
  从缓存理论的角度分析
  从缓存理论的角度,以上这几种购物方式其实是可以互相转换的。如果仅仅从缓存的角度,如何分析这几种模式?
  模式一:没有缓存,每次从硬盘加载,慢。
  模式二:有缓存,但是每次仍然从硬盘加载数据,缓存只起到了缓冲的作用,相当于命中率为0的缓存。无法确保缓存被充分利用,当自提柜密度提高时更甚。如果你把自提柜的空间比作便利店的货架,这相当于便利店的货架很大部分没摆放商品。
  模式三:有缓存,缓存利用率高,但缓存算法并不是最优化,这是由店老板决定的,因此命中率还有提高的空间。缓存就像一潭死水,无法变化,缓存中没有的数据(店里没有的商品)无法获取。
  笔者的理想模式是怎么样的呢?让我们通过改造模式二(自提柜)来获得:
  增加自提柜的密度,要比便利店还更密,提供更好的覆盖度及体验。
  发展自提柜快递员这种职业,和普通快递员不同,他们的任务是由顾客直接指派,并且快速响应,派送距离很短,一般1公里以内(由自提柜的密度决定),解决懒人的最后一公里。其实这个不一定有必要,更多的是想告诉你,通过这样,模式2可以取代模式1,并解决模式1的时间问题。
  预先加载,在顾客购买之前,就将商品缓存到自提柜,这样,自提柜就和便利店就很相似了。这样就能充分利用自提柜的空间(缓存)。Android手机中有很多优化软件,在你内存占满时会让你清理内存,而这与Android的内存策略背道而驰,因为当内存占满时内存才是被充分利用的,这样能提高命中率,如果需要加载新的数据,那么Android会自动舍弃些不常用的数据。
  使用AI算法对缓存(自提柜中提前加载的货物)进行安排,利用机器学习算法结合用户数据,预测某个自提柜附近的顾客们将会购买的商品,并将这些商品预先缓存好。当用户在电商网站购物时,发现自己想要的商品已经在附近的自提柜中,这样,购物体验就接近便利店了。
  一些电商公司有过近似的尝试,但还是离理想模式有差距。
  亚马逊是个奇葩公司,总是有很多惊人的想法,其中有一个是擅自派送商品到顾客家,而顾客甚至没有订购,如果顾客觉得这个不是他想要的,可以拒收。这个想法的逻辑和前面提的预先加载是一致的,虽然两者是类似,但是亚马逊这个做法是不可行的,因为它没有缓存,目标是某个用户,这就要求算法得精确到个人,难度太大。而通过缓存(自提柜)的缓冲作用,目标可以扩大为附近的顾客,这样对算法的要求就大大降低。
  每年的双十一阿里都搞得风风火火,快递的效率一年比一年高,爆仓的情况已经好了很多,这里的秘诀就是阿里依据AI算法将商品提前缓存到各地的仓库,这样就对物流网络起到了缓冲的作用,同时也减少了用户等待的时间。
  仓库也是一种缓存,那么仓库是缓存,自提柜又是什么呢?这其实并不冲突,上面提过了多级缓存这个概念,明显,自提柜是最末端的缓存,而仓库则是上一级缓存,其实仓库本身也是多级缓存,比如北京市朝阳区的仓库是北京市仓库的缓存,北京市仓库又可能是河北省仓库的缓存。阿里做的这个工作已经非常接近了,但是还停留在解决具体问题的阶段,没有去抽象升华。
  菜鸟驿站,这个看着非常相似,实则差十万八千里。它沿袭了阿里轻资产,分流风险,做平台的风格。菜鸟驿站对各个快递代售点没有控制力,体验很差,如果把各个代售点当做缓存,阿里无法对缓存做任何安排。总的来说还不如现在的自提柜。当然它成本低,发展速度快是优点。
  顺丰嘿客,似乎是网购体验店与自提柜的合体,发展并不顺利,还没完全摸透意图。不过没有强大的电商无法完全实现理想模式。
  有些读者可能会有疑问:这样大肆租店场地成本一定很高吧?是的,成本确实很高,但你想想,便利店都能支撑起这样的店租,而缓存算法及机制更为先进的理想模式肯定能创造更多价值,所以不用担心。
  电商公司及快递公司,怎样能更快地到达理想模式?
  发展(收购)便利店,慢慢将货架自提柜化。
  将自动售货机与自提柜结合,取代货架,进一步无人化。
  利用数据及算法优化便利店缓存(货架自提柜自动售货机)上的货品,提高命中率。
  链接仓库与自提柜,形成多级缓存,随着自提柜数量的提升,增加仓库的数量。
  将物流标准化自动化,进一步提升物流速度和效率。
  在少数城市试错。
  理想模式不可能完全取代商店,但作为一种理论上更先进模式,我相信它会消灭大部分商店,而商店存在的意义更多将是展示、体验还有服务。
  一不小心又写多了,科学并不像大家想象的那么死板,经过理解与抽象,很容易应用到生活和产品中,今天的缓存理论,希望你喜欢。
投诉 评论 转载

未来的汽车UI将惊艳世界今天多数汽车UI的设计,由于不直观、过时和缺乏美学表现力,一直饱受诟病。其他行业都将设计的品质奉为标准,汽车生产商在这方面则动作迟缓。所以,许多设计师抓住了这个机会,思考未来的……设计一个按钮的12条经验教训这里有12条经验教训,是作者在设计多种按钮,包括主按钮、次要按钮,以及在一个新兴系统中的使用的大量其他按钮时所总结出来的。值得一读。我超爱按钮。通过按钮我能做很多事。比方……积分体系设计的3个步骤积分属于忠诚体系中的一部分,因此需要有对应数据指标用于检测最终效果。认清积分体系积分体系是对用户行为的一种反馈,本质是用户忠诚度计划的一部分。积分体系在传统行……解锁新姿势!我有100种方法教你撩出一个满意的Banner不管是做Banner设计还是做其他设计,其实主要在于你能了解你擅长的是什么你的需要定位是什么你目前所处的环境因素有哪些限制,从而得出最优的执行方案。写这篇文章的意义在于,……如何高效地协同开发一款移动产品在工作中,我们经常会遇到公司在没有做过多准备的情况下,就要推出一款移动端产品。而移动端又是整个流水线最后一个环节,很容易受到前面环节的影响,导致项目延期。为了避免这种情况,笔者……如何利用缓存理论来分析网购物流的未来计算机技术的进步颠覆了整个世界,而其中的很多技术不仅能解决计算机方面的问题,对很多其他方面的问题也很有启发。今天笔者给大家介绍缓存理论,从缓存理论的角度来看待一些产品及生活上的……电商产品设计入门:用产品设计来勾搭用户(一)如果我们把商品看成信息,那么对于电商产品来说,它首要解决的任务和目标:就是让用户“发现”商品。在进行电商产品设计时,通过设计相应的功能入口来勾搭用户发现商品,就好比是带着用户去……译文深度剖析首字母大写和小写的优缺点在UI界面中,为什么IOS系统习惯每个字母首位都用大写,而谷歌喜欢第一个字母大写?这样的小差异实际上能带来非常大的不同,能够影响到信息的可读性、理解的难度以及可用性,甚至会影响……以百度地图为例,对地图产品的应用场景进行分析本文作者将结合几个具体场景说一说地图产品设计时需要考虑的因素。地图在后端和前端产品设计时有着广泛的应用,比如旅游、房产、O2O等行业。地图产品的设计很考验产品经理的功底,……从0到1,做一款互联网产品需要关注的五个执行重点现在聊聊从零到一做一款互联网产品,需要注意的重点。这些点,我看了很多相关的文章,很少有讲清楚的。在此简单列个几点,与你分享。1。一切方案以可执行为标准写出来的东西定……深度推荐史上最完整用户成长体系设计分析,附6大案例不要试图记住这篇文章每一个细节,当你需要设计成长体系的时候拿出来照着做,或者作为自己思考的依据就好。很早之前人人都是产品经理就有找我约稿,但是用户成长体系这部分的内容涉及……译文他们雇佣我们,我们设计产品究竟要面向产品与用户脚踏实地的构造上乘的体验,还是以老板、评委或其他设计师的审美为目标来精心创作美观的“作品”?作为数字产品的界面设计师,我们正处在一个有意思的时期。这个……
初入行PM必备:大白话告诉你计算机基础知识(一)产品经理必修课:撕逼绝技Kano模型:一种产品经理适用的方法论给产品更多可能性:将问题简化到设计元素以体育包厢为例,谈如何用另类思维抓准用户痛点?作为产品经理,你该回答的8个产品问题雪球项目前景文档:记一个没能启动的项目产品经理类型汇总作为产品的CEO,你属于哪一类PM?从《招股说明书》中学到的5个产品观ToB的产品经理如何与销售和谐共处产品思考:充分发挥VR交互特性的VR产品就一定受欢迎?高阶产品经理能力解析:通才与专才的结合体(附产品经理必备工具怎样给孩子补钙一看就会什么是氩气真正的爱心优秀作文800字议论文集锦有关足球赛作文小孩抚养费可以延迟吗?强力推荐九种补肾食物腊八粥吃多了会胖吗?腊八粥的热量高吗燕南天的武功是什么?燕南天为什么打不过十大恶人?辟谣小于胎龄儿注定无法追赶生长?雾灯的作用女孩怀念离开她的男孩

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找作文动态热点娱乐育儿情感教程科技体育养生教案探索美文旅游财经日志励志范文论文时尚保健游戏护肤业界