首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

0x09 字典序这么说才有逼格

本期节目由我的好友 willChen 友情剪辑,在此感谢他的付出和对本节目的宝贵建议.

Hello World. 大家好, 我是 pshu. 今天是码农英语课堂的第9期了.

今天讲一个单词lexicography, 词典编纂. 这次就不直接开始讲单词了,先闲扯一会别的.

现在做 IT 的如果你说不知道 redis(RemoteDictionaryServer.) 那真是 Out 了. 几年之前的 pshu 也 Out, 为了让自己 In 一点. 就开始学习 redis 了. 当时就开始看一本叫 "redis in action" 的书来给自己充电, 这类 "in action" 的书国内一般都是翻译成 "xx 实战",那这本就是 redis 实战了.

就"redis in action" 这本书而言的话, 个人还是非常推荐的. 书在内容安排上还是比较有意思的, 它会先介绍一部分的 redis 的命令, 然后再介绍如何就此部分的知识做一些应用. 这样边学边做不至于因为光学理论知识枯燥而放弃. 当然也因为这个原因,这本书属于那种让能力提升的书(level up), 但不适合做工具参考书( reference). 在互联网时代了嘛, 技术最好的参考书还是在线手册和文档了.

说回来 redis in action, 书中有一节, 讲的是如何用 redis 做自动补全的后端组件. 我觉得挺实用的就拿来学习下. 其背后的原理很简单. sorted set 中,当所有的score 都相同时, sorted set 中的成员是按照 key 的字符串二进制编码排序的.

When all scores are zero, all members are sorted based on the binary ordering of the strings.

那在 ASCII 的编码前提下,就可以就此实现一个按照前缀提示的功能. 虽然原理很简单,但是书中的实现比较繁琐,需要先插入两个 参考点的字符串,然后再算出它们的 rank, 最后根据 rank 取出内容; 同时还要考虑并发的问题,使用 和 做了 一个乐观锁.

总之,这种方法虽然原理简单,但是实现却不够直观. 导致要用的时候,又要回头来看一遍书参考. 好在我查看文档的时候发现了新命令 . 只要通过这一条命令的调用就能完成书中介绍的功能. 比如要调用前缀为 lexi 的前20个补全提示的只要下面一句

命令中的 LEX 就是今天要说要的单词lexicography的缩写. 刚说按照二进制编码排序,在一些编码下就是字典序 lexicography order 的. 这样的一个生僻的单词用来表达字典序,显然比 dictionary order 逼格高很多了.

因为 redis 太流行,所以国内有志愿者已经翻译了 reidis 文档. 所以大家看 redis 文档的时候, 大家可以先看英文文档, 如果觉得看的不明白,就可以一边对照原文文档, 一边看翻译文档. 这样就非常像 "幸福终点站(the terminal)" 中,主角通过对照着看英语和母语 "六人行" 剧本来学习英语,最终赢得美人芳心 ;P

幸福终点站海报

重新再说回单词, 当我们面对一些冷僻的单词的时候, 我们应该如何记忆. 说实话,第一次看见 lexicography 的时候,我也懵逼; 虽然已经死记硬背了, 但我还是想通过一些有趣的方法来强化记忆.

pshu之前看了很多讲如何记单词的资料, 其中有一种方法是通过字母的象形来解释单词的意义. 比如这里的 l ,本身象形成线条, 所以会有很多条状,杆状的名词通过 l 开头. 比如: long ,ladder, line. 同时文字都是基于线条的,所以很多和语言相关的单词也是 l 开头的. 比如 language,linguist, 包括今天所说的 lexicography. 还有再强行发散一下就是, 文字发明出来最初是用来记录法律. 所以很多法律相关的单词也是 l 开头的: law,legal.

英文字母变迁图示

虽然这些说法,大部分情况下会觉得牵强.但是我们的目的并不是语言学的研究, 不要用在意说法对或者不对. 我们的目的是要记住单词. 只要能记住单词,这样的方法用用也无妨; 再比如那些搞笑谐音法的: ambulance(俺不能死), lynch(凌迟), 也一样效果不错.

希望今天码农英语课堂能在 redis 或者单词记忆上帮助到大家.如果都没有的话,再向大家推荐下 "幸福终点站" 这部电影. 非常适合在五一长假休息的时候看看.

happy Redis! happy movie!

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180430G0EQNB00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券