初次运行Git前的配置

2017 - 07 - 11

使用Redis构建社交网站的流API

在开发社交网站的过程中,我们可能会想要知道更多网站上正在发生的事情——比如网站每个小时会发布多少条新的状态消息,网站上最热门的主题是什么,网站上最经常被@指名的人是谁,诸如此类。要做到这一点,我们既可以专门执行一些调用(call)来收集这些信息,也可以在所有执行操作的函数内部记录这些信息,还有一种方法——也就是本节要介绍的方法——就是构建一些函数来广播(broadcast)简单的事件(event),然后由负责进行数据分析的事件监听器(event listener)来接收并处理这些事件。

在这一......

2017 - 06 - 25

使用Redis构建简单的社交网站

本文将构建一个和Twitter的后端功能几乎完全相同的社交网站,并对构建这个网站所需的数据结构以及概念进行介绍。虽然本章介绍的知识并不足以构建一个像Twitter那样规模宏大的网站,但这些知识应该能帮助读者更好地理解社交网站是如何由简单的结构和数据构建而成的。

用户和状态

在用户与Twitter进行交互时,用户和状态消息这两类对象是最为重要的。用户对象存储了用户的基本身份标识信息、用户的关注者人数、用户已发布的状态消息数量等信息。用户对象对于社交网站来说非常重要,因为它是构建其他可用并且有趣......

2017 - 06 - 25

使用Redis构建搜索服务

当用户在文本编辑器或者文字处理软件中搜索一个单词或者句子的时候,软件就会对文件进行扫描并寻找那个单词或者句子。如果读者曾经使用过Linux、Unix或者OS X的grep程序,或者曾经使用过Windows内置的文件搜索功能来查找包含特定单词或者句子的文件,那么应该就会注意到,被搜索文件的数量越多、体积越大,搜索花费的时间也会越长。

与在本地电脑上面进行的搜索不同,在Web上面搜索Web页面或者其他内容的速度总是非常快的,即使在文档的体积和数量都非常巨大的情况下,也是如此。在这一节中,我们将学习......

2017 - 06 - 25

使用Redis进行文件分发

在构建分布式软件和分布式系统的时候,我们常常需要在多台机器上复制、分发或者处理数据文件,而现有的工具可以以几种不同的方式来完成这些工作:如果服务器需要持续地分发文件,那么常见的做法是使用NFS或者Samba来载入一个路径(path)或者驱动器;对于内容会逐渐发生变化的文件来说,常见的做法是使用一款名为Rsync的软件来尽量减少两个系统之间需要传输的数据量;在需要将多个文件副本分发到多台机器上面的时候,可以使用BitTorrent协议来将文件部分地(partial)分发到多台机器上面,然后通过让各......

2017 - 06 - 19