善于让自己的缓存过期
我们人类没能进化出善于更新的缓存系统,但在纷繁变幻的当下,保持一种“过时”的意识尤为重要

之前聊 DNS 的时候,有一个非常基础的架构风格,就是缓存。缓存的概念来自于英国计算机科学家 Maurice V. Wilkes 写于1965年的论文《Slave Memories and Dynamic Storage Allocation》。在计算机系统中,缓存无处不在,CPU 中就有缓存,内存本身就可以看作是硬盘的缓存,而硬盘自己也带有缓存,可见缓存的重要性。
信息的读取往往符合二八定律,少数的信息占用着多数的读取请求。如果通过提升数据的存储或计算的整体性能,来提升读取的效率,那就相当于为了满足天津人吃海货的愿望给全国人民都发二斤螃蟹,显然没人会这么做。
缓存的意义则在于,通过有限的成本,专门针对那些读取量最大的少部分数据,进行读取性能的优化,进而来提升整个系统的读取性能,算是做到了把钱花在刀刃上。
虽说缓存是一个计算机领域的概念,但它背后的逻辑却是我们人类进化过程中早已融入到基因中的。像过去小饭馆的老板娘,哪桌点了什么菜,多少钱记得一清二楚,但只要你结账走人,她也可以立马忘记,这种短期记忆像不像是脑子里装了个缓存。
还有我们的肌肉记忆,我们骑车、开车、打球踢球,一旦熟练了,基本动作就不会再做思考了,你一直做下去的话永远都是身子先累,而不会脑子先累。还有我们所谓的经验习惯,也可以算是一种缓存,它缓存的是我们应对外物的一套处理流程,这样我们遇到事情就无须从头再分析一遍了。
当然,缓存也有其天然的劣势,在 Fielding 博士的论文中,缓存风格是来自于复制风格的,也就是缓存中的信息并不是原始信息,而是原始信息的一份副本,当原始信息发生变更时,这份副本信息也就失去了原有的价值。
所以一旦你使用了未更新的副本信息,那么就很可能会造成其他环节的错误。所以在计算机系统中,我们往往要求缓存必须要有过期时间,过期的缓存就不能再用了。要用,就要从原始信息重新获取,或者重新计算。
而推演到我们人类自身,我们的各种缓存系统同样也会存在信息过时的问题,而且对人类而言,在漫长的进化过程中,人类一生中环境变化是微乎其微的,于是对我们并没有进化出善于更新缓存的能力,反倒是擅长路径依赖、认知固化这类技巧。
你让一个天天骑车上班的人去骑三轮,让一个天天开面包车的人开出租车,让一个足球运动员只能用左脚碰球,他们不是做不了,但做起来也会很不舒服,会很别扭,这是旧习惯面对新规则的必然后果。
你看人脑的短期记忆也能算是缓存,但是却很少给我们带来麻烦的,因为它过期快,一会儿就忘了,所以顶多是记不住记不准会给你带来麻烦。
我们平时见到的对老人的负面评价,最多的就是固执,不理解新事物。别说老人了,就算是人到中年,也常常会被认为是定了型了,这辈子也就这样了。这些都跟我们的缓存系统有关,我们太擅长利用我们的常识、习惯、经验来面对这个不断翻新的世界了。
不过,我们也能看见一些老人还始终奋战在科研第一线,一些中年人还可以成功转型,可以再创辉煌。这说明在这个纷繁变幻的世界中,也有很多人已经学会了如何克服自己那不善更新的缓存,总是愿意重新获取知识,愿意重新思考。
今天的我也能亲身体会到,重新学习,重新思考,并不是一件很容易的事情,尤其是改变自己已有的习惯,重构自己惯用的经验,就更是难上加难了。但是有一点,或许还比较容易做到,那就是要尽早意识到,缓存是应该要有过期时间的,而且在我们当下所处的环境中,这个过期时间还要尽量短。
有这种“过期”意识很重要,它可以成为寻求改变的契机,成为迈向理想的第一步。说白了就是要认识到这个世界的变化已经超出了我们的想象,如果我们还不知道这件事,那只是因为我们的视野还很狭窄。
我如今劝人戒烟戒酒时,烟酒有害的论调虽然仍是重点,但首先我会说抽烟喝酒这件事已经过时了,它们已经失去了陪伴我们生活的必要性。我们所在的社会,已经有太多被验证过的,健康的,有趣的,管用的生活方式和技巧了,有时只是需要做个尝试。
我如今谈论中医,也会觉得在现代医学已经如此成熟的时代,还从中西医的角度去解读医学有些过时了,实在没必要。我妈就喜欢看中医,可就算她去了中医院,还是得做CT,而不仅仅是望闻问切,可见现代医院对如何看病是有一个基本共识的。所以那些所谓的中西医之分,可能更与既得利益相关,而非与实际的诊疗效果相关。
所以,尝试着把你熟知的概念,惯用的经验,从过时的角度重新审视一遍,也许你就能发现,当下这个时代,早就有了更好的方式可以解决你的问题了。