基于Cassandra搭建简单Blog程序后台
在上一篇博客《大话Cassandra数据模型》中,我们讲解了Cassandra的数据模型。在这篇博客中,我们将基于Cassandra搭建一个简单的Blog程序后台。 需求Blog程序的需求如下: 1 允许不同的用户写Blog。 设计针对上面的4点需求,我们可以相应地建立4个ColumnFamily(以后用CF简写)来保存数据。 Author ColumnFamily作者CF用于保存用户的相关信息,如下所示: Authors : { // CF逖靖寒: { // row key numPosts: 11, homepage: http://gpcuster.cnblogs.com email: gpcuster@gmail.com , sex: male }, // and the other authors Author 2 { ... } } Author CF属于standard类型,Key为用户的ID,每一个Col代表了用户的一个属性。每一个用户相关联的属性不需要预先定义好,这也是面向列存储的好处之一:) BlogEntries ColumnFamily博客CF用与保存每一篇Blog的相关信息,如内容,作者信息,tag信息等等: BlogEntries : { // CF BlogEntries CF属于standard类型,Key为每一篇博客的ID。注意这里的author col,通过这个col,我们可以直接查询到author的信息。 Tag ColumnFamilyTag CF用户保存用户给每一篇博客打上的Tag信息: Tag : { // CF Tag CF属于standard类型,我们可以通过博客的ID找到对应的博客内容。 Comments ColumnFamily用户评论CF设计如下: Comments : { Comments CF属于super类型。这里key的设置我们可以非常方便的找到一篇Blog对应的所有评论信息。 配置信息根据上面设计的各个CF的信息,我们需要在storage-conf.xml文件中配置各个CF的信息,配置情况如下:
使用现在假设我们要根据一个tag找到相关博客,并且打开这篇博客后能够看到作者的信息和相关的评论。 假设选择的tag的名称为NoSQL: 返回tag为NoSQL的所有blog的ID:get BloggyAppy.Tag[‘NoSQL’] 假设选择的blog ID为1222212: 放回Blog的内容:get BloggyAppy.BlogEntries[‘1222212’] 查阅这篇Blog的所有评论信息:get BloggyAppy.Commnets[‘1222212’] 查阅作者信息也是类似的。 这样我们就完成一个简单的Blog程序的后台。 参考WTF is a SuperColumn? An Intro to the Cassandra Data Model(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |