File tree 1 file changed +5
-5
lines changed
1 file changed +5
-5
lines changed Original file line number Diff line number Diff line change 1
1
#5 .6NOSQL数据库操作
2
- NoSQL(Not Only SQL),指的是非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在应付web2 .0网站,特别是超大规模和高并发的SNS类型的web2 .0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。
2
+ NoSQL(Not Only SQL),指的是非关系型的数据库。随着Web2.0的兴起,传统的关系数据库在应付Web2 .0网站,特别是超大规模和高并发的SNS类型的Web2 .0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。
3
3
4
4
而Go语言作为21世纪的C语言,对NOSQL的支持也是很好,目前流行的NOSQL主要有redis、mongoDB、Cassandra和Membase等。这些数据库都有高性能、高并发读写等特点,目前已经广泛应用于各种应用中。我接下来主要讲解一下redis和mongoDB的操作。
5
5
6
6
##redis
7
7
redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。
8
8
9
- 目前应用redis最广泛的应该是新浪微博平台,其次还有目前互联网很热门的被Facebook收购的instagram。其他还有好多有名的 [ 互联网企业] ( http://redis.io/topics/whos-using-redis )
9
+ 目前应用redis最广泛的应该是新浪微博平台,其次还有Facebook收购的图片社交网站instagram。以及其他一些有名的 [ 互联网企业] ( http://redis.io/topics/whos-using-redis )
10
10
11
11
Go目前支持redis的驱动有如下
12
12
- https://github.com/alphazero/Go-Redis
@@ -18,7 +18,7 @@ Go目前支持redis的驱动有如下
18
18
19
19
https://github.com/astaxie/goredis
20
20
21
- 接下来的例子中我以我自己fork的这个redis驱动来演示如何进行数据的操作
21
+ 接下来的以我自己fork的这个redis驱动为例来演示如何进行数据的操作
22
22
23
23
package main
24
24
@@ -54,15 +54,15 @@ https://github.com/astaxie/goredis
54
54
55
55
##mongoDB
56
56
57
- Mongo是一个高性能 ,开源,无模式的文档型数据库,是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bjson格式 ,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
57
+ MongoDB是一个高性能 ,开源,无模式的文档型数据库,是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,采用的是类似json的bjson格式来存储数据 ,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
58
58
59
59
下图展示了mysql和mongoDB之间的对应关系,我们可以看出来非常的方便,但是mongoDB的性能非常好。
60
60
61
61
![ ] ( images/5.6.mongodb.png?raw=true )
62
62
63
63
目前Go支持mongoDB最好的驱动就是[ mgo] ( http://labix.org/mgo ) ,这个驱动目前最有可能成为官方的pkg。
64
64
65
- 下面我讲演示如果通过Go来操作mongoDB :
65
+ 下面我将演示如果通过Go来操作mongoDB :
66
66
67
67
68
68
package main
You can’t perform that action at this time.
0 commit comments