,— layout: post category: “essay” title: “程序员的宇宙时间线” date: 2016-07-12 18:30:00 +0800 published: true —
周六晚上,我把车停在了亲戚家小区门外的路边。在三个小时之后我准备开走的时候,突然发现,前车门外面似乎有一根银色的细线,在远处路灯投下的微弱余光中轻轻地颤动。我借助手机屏幕的亮光才得以看清,原来是一只蜘蛛正在左后视镜和前车门之间织网。
自从上次我写了《女儿和她的图画书》这篇文章之后,有不少同学对于“我平常给女儿读了哪些图画书”表示好奇。那今天我就把女儿的书单晒一晒,并把各个系列做个简单介绍。家里有小朋友的,准备收藏喽。
在介绍之前,我先说点题外话。父母与孩子之间的爱,是需要用心经营的。一般来说,孩子从一生下来,就与母亲更加亲近,这是由人的天性决定的。而如果你是孩子的父亲,那么你如何与孩子建立彼此的信任,如何走进孩子的内心世界呢?
本文是《Redis内部数据结构详解》系列的第四篇。在本文中,我们首先介绍一个新的Redis内部数据结构——ziplist,然后在文章后半部分我们会讨论一下在robj, dict和ziplist的基础上,Redis对外暴露的hash结构是怎样构建起来的。
我们在讨论中还会涉及到两个Redis配置(在redis.conf中的ADVANCED CONFIG部分):
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
本文的后半部分会对这两个配置做详细的解释。
我们平常接触到的大部分App,在收到新消息的时候一般都会以数字或红点的形式提示出来。比如在微信当中,当某位好友给我们发来新的聊天消息的时候,在相应的会话上就会有一个数字来表示未读消息的数目;再比如当微信朋友圈里有人发布新的内容时,朋友圈的入口就会出现一个红点,而当朋友圈里有人给我们点了赞,或者对我们发布的内容进行了评论的时候,朋友圈的入口就会显示一个数字。
但是,我们在试用一些新的App产品时,总会发现它们在数字和红点展示上存在各种各样的问题。比如,红点怎么点击也清除不掉;或者,发现有数字了,点进去却什么也没有;或者,点进去看到的数字和外面看到的不一样。
那这些问题到底是怎样产生的呢?
女儿爱读书。
对于一个小孩子来讲,什么叫做爱读书呢?
一岁之前的小孩子,抓起小画书就往小嘴里送,急切地想要尝尝它的味道,就是爱读书了。
两岁之前的小孩子,终于明白书原来不是什么好吃的东西,能克制住不把图书撕成纸片,就是爱读书了。
本文是《Redis内部数据结构详解》系列的第三篇,讲述在Redis实现中的一个基础数据结构:robj。
那到底什么是robj呢?它有什么用呢?
本文是《Redis内部数据结构详解》系列的第二篇,讲述Redis中使用最多的一个基础数据结构:sds。
不管在哪门编程语言当中,字符串都几乎是使用最多的数据结构。sds正是在Redis中被广泛使用的字符串结构,它的全称是Simple Dynamic String。与其它语言环境中出现的字符串相比,它具有如下显著的特点:
如果你使用过Redis,一定会像我一样对它的内部实现产生兴趣。《Redis内部数据结构详解》是我准备写的一个系列,也是我个人对于之前研究Redis的一个阶段性总结,着重讲解Redis在内存中的数据结构实现(暂不涉及持久化的话题)。Redis本质上是一个数据结构服务器(data structures server),以高效的方式实现了多种现成的数据结构,研究它的数据结构和基于其上的算法,对于我们自己提升局部算法的编程水平有很重要的参考意义。
当我们在本文中提到Redis的“数据结构”,可能是在两个不同的层面来讨论它。