本文介绍如何使用redis设计一个小的微博系统数据库(该例子来源于redis官网文档)。
对于关系型数据库,设计数据库通常等同于设计表、模式等。对于redis我们是不需要这些的,所以我们只需要设计我们程序中的数据结构用什么key、用哪种value表示就足够了。我们首先要设计的是用户信息这个数据结构,它里边会包含username, userid, password, followers等信息。类似于关系型数据库,我们也要找一个唯一的key来表示这个用户信息结构,我们通过userid来表示用户。这里有个小窍门,我们可以设置一个nextUserId键专门存储用户id,之后用INCR nextUserId来获取一个没有被使用过的用户id。这是一个非常常用的键值存储设计模式,以后你还会看见很多这样的用法。有了用户id后,我们就可以创建用户信息结构了。假 设我们现在获取了一个用户id,它的值是1000.现在我们可来设置用户信息。
set uid:1000:username john
set uid:1000:password 12345
…………
如果你习惯了关系型数据库后,看到这个设计模式一定会非常不适应,但是这就是键值存储的设计模式。我们不需要专门定义数据结构的层次关系,我们完全可以直接用key的形式表示数据之间的关系。比如,如同上边,