第1章 NoSQL数据库的基础知识 1
1.1关系型数据库和NoSQL数据库 2
1.1.1什么是NoSQL 2
1.1.2关系型数据库简史 2
1.1.3数据库的分类 3
1.1.4关系型数据库的优势 5
1.1.5关系型数据库的不足 5
1.1.6 NoSQL数据库 9
1.2 NoSQL数据库是什么 12
1.2.1键值存储 13
1.2.2面向文档的数据库 14
1.2.3面向列的数据库 14
1.3如何导入NoSQL数据库 16
1.3.1始终只是其中一种选择 16
1.3.2在何种程度上信赖它? 18
第2章 NoSQL数据库的种类和特征 19
2.1 memcached(临时性键值存储) 20
2.1.1什么是memcached 20
2.1.2为什么要使用memcached 20
2.1.3特征和用例 21
2.1.4安装步骤 27
2.1.5动作确认 29
2.1.6各种开发语言需要用到的程序库 36
2.1.7相关工具 37
2.2 Tokyo Tyrant(永久性键值存储) 44
2.2.1什么是Tokyo Tyrant 44
2.2.2为什么要使用Tokyo Tyrant 44
2.2.3特征和用例 44
2.2.4安装步骤 48
2.2.5动作确认 50
2.2.6各种开发语言需要用到的程序库 58
2.2.7相关工具 58
2.3 Redis(临时性/持久性键值存储) 61
2.3.1什么是Redis 61
2.3.2为什么要使用Redis 61
2.3.3特征和用例 67
2.3.4安装步骤 71
2.3.5动作确认 72
2.3.6各种开发语言需要用到的程序库 81
2.4 MongoDB(面向文档的数据库) 82
2.4.1什么是MongoDB 82
2.4.2为什么要使用MongoDB 82
2.4.3特征和用例 84
2.4.4安装步骤 87
2.4.5动作确认 88
2.4.6各种开发语言需要用到的程序库 100
2.4.7相关工具 100
第3章 试用NoSQL数据库 103
3.1 memcached的具体使用实例 104
3.1.1例①关系型数据库的缓存 104
3.1.2例②音乐视听排行网站 112
3.1.3例③外部API的缓存 119
3.2 Tokyo Tyrant的具体使用实例 120
3.3 Redis的具体应用实例 130
3.3.1例①时间线(Time Line)形式的Web应用 130
3.3.2例②查询历史记录 144
3.4 MongoDB的具体使用实例 151
3.4.1例①问卷调查数据的保存 151
3.4.2例②解析数据的存储 165
第4章 性能验证 167
4.1基本的插入和查询处理的性能 168
4.1.1假定案例 168
4.1.2准备工作 171
4.1.3插入处理的性能 172
4.1.4查询的性能 172
4.2不同实例的性能比较 175
4.2.1 Tokyo Tyrant的addint方法和incr方法 175
4.2.2对Redis的列表类型的数据进行添加和删除 177
4.2.3 MySQL的JOIN和MongoDB的embed 178
第5章 NoSQL化的关系型数据库 183
5.1关于NoSQL数据库 184
5.1.1各种NoSQL数据库的特征 184
5.1.2运行时的开销以及经验不足的问题 185
5.1.3将MySQL数据库NoSQL化的方法 185
5.2尝试使用HandlerSocket 187
5.2.1特征 187
5.2.2为MySQL安装HandlerSocket 188
5.2.3动作确认 191
5.2.4 HandlerSocket的性能 197