1.14.1.3.1. Redis端口由来和命令前缀PF由来
1.14.1.3.1.1. Redis端口由来
今天来聊一个有意思的话题:Redis 的默认端口为什么是 6379 呢?
Redis默认端口号的由来,Redis端口号为啥是6379?前几天Redis作者antirez同学在twitter上说将在下一篇博文中向大家解释为什么他选择6379作为默认端口号。而现在这篇博文出炉,在解释了Redis的LRU机制之后,如期向大家解释了采用6379作为默认端口的原因。
我之前也没有想过为什么Redis的默认端口是6379,估计是随便选的吧。然而今天偶然看到一篇帖子,原来不是随便选的,是有含义的。
Is it a coincidence that it sounds not random enough? Actually not ;) I selected 6379 because of MERZ, and not the other way around.
听起来不够随机是一个巧合吗?实际上不是;)因为MERZ,所以我选择了6379,而不是相反。
Redis端口号6379是电话键盘上(九宫格)的MERZ。
而Merz全名Alessia Merz,是意大利的一位广告女郎
在Antirez看来,这个名字是愚蠢的代名词,所以就选了这个6379。我觉得还是有点侮辱人啊。不过这位姑娘应该也不会关心IT技术圈的事,反而会被广大程序员知道了。
Redis默认端口号的由来,Redis端口号为啥是6379?
1.14.1.3.1.2. Redis的数据类型HyperLogLogd的命令为什么是PF开头
PFADD key element [element ...] 添加指定元素到 HyperLogLog 中。
PFCOUNT key [key ...] 返回给定 HyperLogLog 的基数估算值。
PFMERGE destkey sourcekey [sourcekey ...] 将多个 HyperLogLog 合并为一个 HyperLogLog
HyperLogLog其实是一种基数计数概率算法,并不是Redis特有的,Redis基于C语言实现了HyperLogLog并且提供了相关命令API入口。
Redis的作者Antirez为了纪念Philippe Flajolet对组合数学和基数计算算法分析的研究,所以在设计HyperLogLog命令的时候使用了Philippe Flajolet姓名的英文首字母PF作为前缀。
也就是说,Philippe Flajolet博士是HLL算法的重大贡献者,但是他其实并不是Redis中HyperLogLog数据类型的开发者。
遗憾的是Philippe Flajolet博士于2011年3月22日因病在巴黎辞世。这个是Philippe Flajolet博士的维基百科照片: