如何构建 timeline

标签:Redis

虽然我没有考证过,但至少从 Twitter 开始,timeline 这个词出现在互联网上也快 10 年了。这些年来,很多互联网产品依靠着各式各样的 timelines,吸引了无数的用户。
然而这篇文章并不是研究 timeline 的历史,而只是探索其实现方式而已。

用 Redis 存储 ID 连续的数据

标签:Python, Redis

之前在设计「Doodle 2」和开发「知乎日报」时,我面对最多的数据类型就是带 ID 的数据了。
在使用关系型数据库时,自增的主键可以满足这个需求,而在 Redis 中就稍微麻烦些了。

关于 Redis 的几种数据库设计方案的内存占用测试

标签:Python, 性能, Redis

最近在做一个项目,数据库使用的是 Redis。在设计数据结构时,不知道哪种实现是最优的,于是做了下测试。

测试环境如下:
OS X10.8.3
Redis 2.6.12
Python 2.7.4
redis-py 2.7.2
hiredis 0.1.1
ujson 1.30
MessagePack 0.3.0
注意:
  1. 因为是拿 Python 测试的,所以可能对其他语言并不完全适用。
  2. 使用的测试数据是特定的,可能对更小或更大的数据并不完全适用。

Twitter为什么会使用NoSQL?

标签:无

由于平时经常接触Google App Engine,所以对NoSQL也算比较关注。在设计网站时,总会不由自主地考虑使用NoSQL是否合适,而在给我的网站添加社交功能时,我也不禁想到了一个问题:Twitter为何会采用那么麻烦的NoSQL?

Java、PHP、Python与MySQL交互的性能测试

标签:Java, PHP, Python, 性能

这几天看源码弄清了一件事:WEB服务器接收浏览器请求、将请求传给PHP/Python进程(FCGI等)、与数据库进行交互都是用socket(套接字)。
也就是说,这些行为都是进程间通信。一台WEB服务器在硬件、操作系统不变的情况下,它的性能主要取决于socket通信的速度。如果所有进程都在一台服务器上的话,这个速度就取决于通信的效率了。

sqlite3的性能不错

标签:性能

Python 2.5里内置了sqlite3模块,可以直接创建sqlite数据库。虽然是个小型的数据库,不过测试后发现性能确实不错,看来足以用于嵌入式开发。